嗯,我能够成功存储用户定义的标签,同时通过acts_as_taggable gem 注册他们的个人资料。问题在于显示和更新它们。 为了显示目的,我使用了 jquery tag-it 插件。
现在,gem 将所有标签作为单个字符串(之间有空格)提供给表单,而插件则要求将它们放在有序列表中,以便所有标签都可以单独显示。
我的查看代码:
如果我使用
<%= f.text_field :intersted_list, class: 'form-control', id: 'intersted' %>
,检索到的所有标签都显示为单个标签。
如果我使用:
<ul id="intersted">
<% resource.intersted_list.each do |tag| %>
<li><%= tag %></li>
<% end %>
</ul>
所有标签均单独显示。但是,我无法添加或更新它们,因为它们不再是表单的一部分。
Javascript代码:
$("#intersted").tagit();
所有的指针将不胜感激.. 提前致谢..
最佳答案
我怀疑您的代码还存在其他问题,因为我相信您的代码应该可以工作。
Tag-it 有几种不同的方法可以构建小部件。您可以在 HTML 源代码 https://aehlke.github.io/tag-it/examples.html 中看到其中的一堆内容。 。请注意,不幸的是,该页面需要通过非 HTTPS 链接使用 jQuery,因此您可能必须禁用浏览器的保护功能,以防止在 HTTPS 页面上包含 HTTP 资源。
使用单个输入的最快方法是将字段的值设为逗号分隔的列表,例如 <input name="tags" id="singleFieldTags2" value="Apple, Orange">
然后只需启动小部件,无需任何选项:$('#singleFieldTags2').tagit();
这是示例页面上的“单一输入字段 (2)”选项。如果使用此选项无法正确显示标签,则听起来您的 ERB 没有生成正确的 HTML(尽管看起来应该如此)。您可能想要确认,一方面您可以使用静态 HTML 让 Tag-it 在您的页面上正常工作,另一方面您可以使用 Ruby/ERB 生成带有逗号分隔关键字的正确文本字段(无需 Tag-it) )另一方面。
你的第二种方法也应该有效,尽管你必须确保它包含在 <form>
中元素; Tag-it 将生成 <input>
适合您,但它们需要采用表格形式才能提交。
关于javascript - 表单显示,同时将 acts-as-taggable-on gem 与 jquery tag-it 插件集成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44860456/