1

我有一个 Product 模型,我需要options_from_collection_for_select从我的 products 模型的一列中填充一个 my ,但是我需要它options_for_select是唯一的,而不是重复该列中的所有值。

4

3 回答 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 回答