Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/467.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在Rails中使用jquery tokeninput?_Javascript_Jquery_Ruby On Rails_Jquery Tokeninput - Fatal编程技术网

Javascript 如何在Rails中使用jquery tokeninput?

Javascript 如何在Rails中使用jquery tokeninput?,javascript,jquery,ruby-on-rails,jquery-tokeninput,Javascript,Jquery,Ruby On Rails,Jquery Tokeninput,我正在尝试在我的应用程序中的表单中添加tokeninput jquery字段,允许用户发布状态更新。我希望用户能够将works(一个单独的模型)附加到状态更新。我在gem上使用act_as_taggable_,我的查询指定标记上下文“works”。但是,该字段不会加载任何搜索结果 实际上,我有第二个tokeninput字段,允许用户将标签附加到状态更新,就像这个网站使用标签附加到这个发行单一样。很好用!我正在尝试镜像该功能,以指定搜索works模型的上下文,我正在努力实现它 有什么想法吗?非常感

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

实际上,我有第二个tokeninput字段,允许用户将标签附加到状态更新,就像这个网站使用标签附加到这个发行单一样。很好用!我正在尝试镜像该功能,以指定搜索works模型的上下文,我正在努力实现它

有什么想法吗?非常感谢您的时间和帮助!以下是相关代码:

后模型

attr_accessible :content, :tag_list, :work_list

acts_as_taggable_on :tags
acts_as_taggable_on :works
邮政总监(更新版)

形式

路线

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

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

请继续上面的enginhere.com对话,然后在此处发布赏金的最终官方答案,随时提供帮助


再次感谢

如果您在gem上使用acts作为标记,这比在railscast中更简单

型号(Post):

acts_as_taggable_on :works
= f.text_field :work_list, "data-pre" => f.object.work_list.sort.collect {|t| {id: t, name: t } }.to_json
$ ->
  $("#post_work_list").tokenInput "/posts/works.json",
    preventDuplicates: true,
    animateDropdown: false
查看(表单):

acts_as_taggable_on :works
= f.text_field :work_list, "data-pre" => f.object.work_list.sort.collect {|t| {id: t, name: t } }.to_json
$ ->
  $("#post_work_list").tokenInput "/posts/works.json",
    preventDuplicates: true,
    animateDropdown: false
JS:

acts_as_taggable_on :works
= f.text_field :work_list, "data-pre" => f.object.work_list.sort.collect {|t| {id: t, name: t } }.to_json
$ ->
  $("#post_work_list").tokenInput "/posts/works.json",
    preventDuplicates: true,
    animateDropdown: false

对本主题的任何问题的精彩帖子解答


谢谢您的回复!我无法让它工作,但这让我思考:为什么不在gem上使用acts_as_taggable_作为我用于标记的工作呢?我镜像了用于标记的代码,但works字段仍然无法工作。不过我越来越近了!javascript会加载,但当我在字段中键入任何内容时,会出现500错误。更新问题。有什么想法吗?谢谢服务器登录控制台中的错误描述如何?捕捉#works方法中的错误。开始获取“/posts/works.json?q=op”由PostsController处理#作为json参数:{“q”=>“op”}NameError(未初始化常量actsastaggaleon::Work):在1ms app/controllers/posts\u controller中完成500个内部服务器错误。rb:28:在“works”中定义“acts\u taggableon:works”这意味着您将使用带有上下文“works”的actsastaggaleon::标记模型。因此,请尝试将查询更改为actsastaggaleon::Tag.includes(:taggings).where(“taggings.context='works”).where(“tags.name-ILIKE?”,“%#{params[:q].downcase.to#s}%”)get“posts/works”=>“posts#works”,“as=>:works-将通过查询为您返回标记。应该在posts#update(表单操作的路径)中创建新标记。请注意,答案应该是搜索解决方案的终点(而不是引用的另一个中途停留,随着时间的推移往往会过时)。请考虑在这里添加一个独立的概要,将链接作为参考。