我正在为stackoverflow.com上的帖子制作类似于autocomplete标签字段的内容
我想这样做,以便在您撰写博客文章时,可以使用数据库中的文字对其进行标记,类似于SO。
对于帖子,它属于belongs_to_and_has_many标签 对于标签,它属于_to_and_has_many帖子
然而,在同一页面上进行此操作是个问题,因为@post将为零。
我该如何实现?
(如果有人可以给我stackoverflow的代码请问问题页面真棒)
答案 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)
它让我觉得你想要自动生成标签。
你可以创建
模型/ post.rb中的班级岗位 before_save:create_tags
私人
def create_tags
#以某种方式获取你的标签
self.tags<< Tag.new(:文本=> “中...”)
结束
结束
方法并在那里构建它们。
答案 3 :(得分:0)
如果你想在自动建议的现有标签中搜索,你应该从Tag.all匹配,因为它不会是nil,就像你在select下拉列表中收集一组对象一样。不确定自动完成的代码,但标签应该在Tag表中。