我有一个 Product 模型,我需要options_from_collection_for_select
从我的 products 模型的一列中填充一个 my ,但是我需要它options_for_select
是唯一的,而不是重复该列中的所有值。
问问题
817 次
3 回答
0
获取产品型号上特定列的唯一列表:
Product.uniq.pluck(:size)
于 2013-03-13T04:52:10.143 回答
0
select_tag(名称,option_tags = nil,选项 = {})
@uniq_products = Product.group(:column_name)
select_tag "product", options_from_collection_for_select(@uniq_products, "id", "<column_name>")
于 2013-03-13T06:43:23.473 回答
0
find_by_sql
虽然 Rails 提供了通过唯一列值进行选择的方法,但使用模型方法直接获取唯一结果会更快。
# app/controllers/products_controller.rb
@unique_products = Product.find_by_sql("SELECT * FROM products GROUP BY unique_column")
# app/views/products/_form.html.erb
<%= select_tag 'product', options_from_collection_for_select(@unique_products, 'id', 'name')
于 2013-03-13T07:16:29.370 回答