如何像 Facebook 或 Twitter 一样在 feed 中标记用户?
您好,我正在开发 Rails 应用程序。我想像 facebook 或 twitter 那样实现用户标记。当用户在提要中发帖时,他可以在开始时用 @ 字符标记任何用户。
我正在使用 Jquery UI 自动完成插件。
我有这个参考 实现 jquery UI 自动完成以在您键入“@”时显示建议“ 这帮助我实现了自动完成部分。
但现在我想将自动完成的用户名链接到用户配置文件 url,例如 Username = Mak,然后应该生成链接,如下所示
<a href="http://www.example.com/username">Username</a>
所以请指导我如何在我的 Rails 应用程序中实现此功能?是否有任何 gem 可以这样做。
HI I am working on a rails application. I want to implement user tagging as facebook or twitter does. When user is posting in feed he can tag any user with @ character at starting.
I am using Jquery UI Autocomplete plugin.
I have this reference
Implementing jquery UI autocomplete to show suggestions when you type "@" which helped me to implement auto complete part.
But now I want to link that auto completed username to users profile url e.g Username = Mak then link should be generated like
<a href="http://www.example.com/username">Username</a>
So please guide me how can I implement this in my rails application?Is there any gem to do so.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
如果您想这样做,您应该为帖子内容编写特定的 setter/getter 方法。一个简单的示例:
在模型中(在本例中,包含帖子的列称为“内容”):
那么您应该在部分中使用这些 setter/getter 方法。我只是“凭空想象”写了这篇文章,里面可能有一些语法上的废话,但我想你明白我在说什么!
此方法的优点是您还可以更改用户名,因为您在创建帖子时存储了用户的 ID。
If you want to do that you should write specific setter/getter methods for the post content. A simple example:
In model (in this example the column with the post is called "content"):
Then you should use these setter/getter methods in the partial. I just wrote this "out of my head" there might be some syntactical crap in it but I think you uznderstoud what Im talking about!
THe advantage of this method is that you can also change the users names beacause you store the id of the user at the moment of posts creation.
嘿,不需要上述方法。我使用简单的正则表达式做到了。
在我的正则表达式中,我使用了
(\^|\s|\B)
因为 @ 可以出现在字符串开头或标记用户时的空格之后。([a-zA-Z])(_?[a-zA-Z0-9]+)*|_([a-zA-Z0-9]+_?)*
这是用于验证用户名。在我的应用程序中,用户名必须以字母开头,后跟字母和字母。数字。没有。 2 用于在正则表达式中进行第二场比赛。
有关更多详细信息,请尝试 Rubular.com 上的正则表达式,
我希望这对其他人有帮助。
Hey it doesn't required above methods. I did it using simple regex.
In my regex I have used
(\^|\s|\B)
because @ can occur at start of string or after a white space while tagging a user.([a-zA-Z])(_?[a-zA-Z0-9]+)*|_([a-zA-Z0-9]+_?)*
This is used to validate username. In my application username must start with alphabet followed by alphabets & numbers.The no. 2 used to take second match in regex.
For more details try the regex on Rubular.com
I hope this will help others.