我在一个小项目中使用 ActsAsTaggableOn 来看看这个 gem 的可能性。所以我有产品,产品可以有标签。
在我的产品 _form
<%= form_for(@product) do |f| %>
<div class="field">
<%= f.label :title %><br />
<%= f.text_field :title %>
</div>
Tags<br />
<% tag_cloud(@tags, %w(css1 css2 css3 css4)) do |tag, css_class| %>
<%= check_box_tag 'product[tag_list][]',tag.name,@product.tag_list.include? (tag),:class => css_class %>
<%= tag.name %>
<% end %>
<div class="actions">
<%= f.submit %>
</div>
<% end %>
在 ProductController 我定义了 tag_cloud 方法
def tag_cloud
@tags = Product.tag_counts_on(:tags)
end
所以在我的编辑产品中,我可以用复选框标记产品,但如果产品已经有标签,则不会选中这些复选框。我假设这里是@product.tag_list.include?(标签)我错过了什么或做错了什么。
有任何想法吗?感谢您的帮助 =)
干杯。