如何在Rails中使用jquery tokeninput?

2024-05-20

我正在尝试在我的应用程序的表单中添加 tokeninput jquery 字段,该字段允许用户发布状态更新。我希望用户能够将作品(单独的模型)附加到状态更新中。我正在使用 act_as_taggable_on gem,并且我的查询指定标签上下文“works”。但是,该字段不会加载任何搜索结果。

实际上,我有第二个 tokeninput 字段,允许用户将标签附加到状态更新,就像该网站使用标签附加到此问题票证一样。效果很好!我试图镜像该功能来指定搜索工作模型的上下文,但我正在努力实现。

有任何想法吗?我们将非常感谢您的时间和帮助!这是相关代码:

后模型

attr_accessible :content, :tag_list, :work_list

acts_as_taggable_on :tags
acts_as_taggable_on :works

后置控制器(更新)

def work_list
 query = params[:q]  
 @work_list = ActsAsTaggableOn::Tag.includes(:taggings).where("taggings.context = 'works'").where("tags.name ILIKE ?", "%#{params[:q].downcase.to_s}%").all
 @work_list = @work_list.select { |v| v.name =~ /#{query}/i }
  respond_to do |format|
    format.json { render :json => @work_list.map{|w| {:id => w.name, :name => w.name }}}
  end
end


def tags 
    query = params[:q]
    if query[-1,1] == " "
      query = query.gsub(" ", "")
      ActsAsTaggableOn::Tag.find_or_create_by_name(query)
    end

    #Do the search in memory for better performance

    @tags = ActsAsTaggableOn::Tag.all
    @tags = @tags.select { |v| v.name =~ /#{query}/i }
    respond_to do |format|
      format.json{ render :json => @tags.map{|t| {:id => t.name, :name => t.name }}}
    end
  end

form

<%= f.text_field :tag_list, :id => "post_work_list",  "data-pre" => @post.work_list.map(&:attributes).to_json %>

javascript

$ ->
  $("#post_tags").tokenInput "/posts/tags.json",
    prePopulate: $("#post_tags").data("pre")
    preventDuplicates: true
    noResultsText: "No results, press space key to create a new tag."
    animateDropdown: false

$ ->
  $("#post_work_list").tokenInput "/posts/work_list.json",
    prePopulate: $("#post_work_list").data("pre")
    preventDuplicates: true
    noResultsText: "No results"
    animateDropdown: false

routes

get "posts/tags" => "posts#tags", :as => :tags
get "posts/work_list" => "posts#work_list", :as => :work_list

Thanks!

编辑:我清理了这个问题并更新了所有代码。我还在 enginhere.com 上发起了一次对话,其中还有其他工程师提供的一些其他故障排除:

http://bit.ly/179kiqH http://bit.ly/179kiqH

请继续在上述 enginhere.com 对话中提供帮助,然后在此处发布最终的官方答案以获得赏金!

再次感谢!


精彩的帖子回答了本主题的任何问题!

http://bloginius.com/blog/2013/12/31/how-integrate-acts-as-taggable-on-with-jquery-token-input-with-rails-3/ http://bloginius.com/blog/2013/12/31/how-integrate-acts-as-taggable-on-with-jquery-token-input-with-rails-3/

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在Rails中使用jquery tokeninput? 的相关文章

随机推荐