collection_select
和select
Rails的助手:哪一個我應該使用?軌collection_select與選擇
我看不出在兩個方面的差異。這兩個助手都需要一個集合並在選擇標籤中生成選項標籤。 collection_select
是否比select
好?還是我在這裏失蹤的任何東西?
collection_select
和select
Rails的助手:哪一個我應該使用?軌collection_select與選擇
我看不出在兩個方面的差異。這兩個助手都需要一個集合並在選擇標籤中生成選項標籤。 collection_select
是否比select
好?還是我在這裏失蹤的任何東西?
collection_select
旨在當項目的名單是ActiveRecord對象的數組中。 collection_select
構建於select
的頂部,因此當您需要顯示對象集合而不是字符串數組時,這是一種方便的方法。
collection_select(:post, :author_id, Author.find(:all), :id, :name)
和關於select
,您可以用散列使用它。我曾經和ENUM一起使用它。
# In a hypothetical Fruit model
enum types: { 'Banana' => 0, 'Grape' => 1, 'Mango' => 2 }
# In the view
f.select :type, Fruits.types.invert
注意,我不得不使用反轉,以顯示在選項中正確的值:
<select>
<option value="0">Banana</option>
<option value="1">Grape<option>
<option value="2">Mango</option>
</select>
要引用它在一個演示文件,您可以使用Fruit.types
,這將返回我們之前的哈希。這樣,你可以這樣做:
Fruit.types[obj.type]
最後一個音符:如果你喜歡enum types: { 'Banana' => :banana, ...
您可以使用符號而不是數字,你會得到<option value="banana">Banana</option>
這顯然是正確的答案,值得認可。什麼給@webnuwan? – biagidp 2014-03-19 02:10:30