在帖子RAILS上创建标签

时间:2011-01-16 12:07:59

标签: ruby-on-rails-3

我正在为stackoverflow.com上的帖子制作类似于autocomplete标签字段的内容

我想这样做,以便在您撰写博客文章时,可以使用数据库中的文字对其进行标记,类似于SO。

对于帖子,它属于belongs_to_and_has_many标签 对于标签,它属于_to_and_has_many帖子

然而,在同一页面上进行此操作是个问题,因为@post将为零。

我该如何实现?

(如果有人可以给我stackoverflow的代码请问问题页面真棒)

4 个答案:

答案 0 :(得分:1)

我认为这里的问题是你似乎在问两个不同的问题。如果我错了,请纠正我。

第一个问题是如何实现自动完成功能,以允许用户轻松地从预先填充的标签列表中进行选择。要回答这个问题,你可以参考上面的spncrgr的答案。

第二个问题是如何处理将这些检索到的标签与当前帖子相关联。为此,您可以向自动完成解决方案添加其他JavaScript功能。当用户从自动填充字段中选择他们想要的标记时,您可以像StackOverflow那样执行,并将标记添加到单个文本字段中的标记列表中。这些可以是空格或逗号分隔。当您提交表单以创建新帖子时,您可以将此字段解析为单独的标签:

tags = params[:tags].split(' ')

然后,您可以在Post#create action中将这些标记与模型相关联。

答案 1 :(得分:0)

这可能对你没什么帮助(或者你可能已经看过了),但这里有一个关于自动完成的Railscasts剧集的链接:

http://railscasts.com/episodes/102-auto-complete-association

我知道在尝试做类似事情时帮助了我。

HTH

答案 2 :(得分:0)

它让我觉得你想要自动生成标签。

你可以创建

  

班级岗位      before_save:create_tags

     

私人
     def create_tags
      #以某种方式获取你的标签
      self.tags<< Tag.new(:文本=> “中...”)
     结束
   结束

模型/ post.rb中的

方法并在那里构建它们。

答案 3 :(得分:0)

如果你想在自动建议的现有标签中搜索,你应该从Tag.all匹配,因为它不会是nil,就像你在select下拉列表中收集一组对象一样。不确定自动完成的代码,但标签应该在Tag表中。