【发布时间】:2016-06-30 07:54:02
【问题描述】:
您好,我有一个 Rails 应用程序,我在其中以序列化形式存储标签
product.rb
class Product < ActiveRecord::Base
serialize :product_keywords, Array
scope :with_tag, lambda { |tag|
where(["product_keywords LIKE ?", "%"+tag.join("%")+"%"])
}
end
在我看来
<% Product.all.active.each do |product| %>
<% product.product_keywords.map do |keywords| %>
<div class="checkbox">
<label>
<%= check_box_tag("with_tag[]", keywords, false) %> <%= keywords.capitalize %>
</label>
</div>
<% end %>
<% end %>
在这里,当我从范围 with_tag 的复选框中找到带有标签的产品时,它只会根据最后一个选中的复选框获取记录
您可以通过发生的查询获得清晰的视野
product_keywords LIKE '%tshirt%printed%'
product_keywords 存储在表格的数组中。
如果产品中有多个重复的标签,我如何找到记录
【问题讨论】:
标签: ruby-on-rails ruby activerecord serialization