1

製品モデルがあり、製品モデルoptions_from_collection_for_selectの列の1つからデータを入力する必要がありますが、options_for_select一意である必要があり、その列のすべての値が繰り返されるわけではありません。

4

3 に答える 3

0

find_by_sqlRailsは一意の列値で選択するためのメソッドを提供しますが、モデルメソッドを使用して一意の結果を直接フェッチする方が高速です。

# 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 に答える
0

製品モデルの特定の列の一意のリストを取得します。

Product.uniq.pluck(:size)
于 2013-03-13T04:52:10.143 に答える
0

select_tag(name, option_tags = nil, options = {})

@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 に答える