2
我正在使用Rails select()
表單助手來生成<select>
結構。以下行可用,但會導致未排序的列表。我如何將排序順序改爲按字母升序排列?Rails:在選擇表單助手中指定排序順序
<%= select('category', 'name', Category.all.collect { |category| [ category.name ] }) %>
我正在使用Rails select()
表單助手來生成<select>
結構。以下行可用,但會導致未排序的列表。我如何將排序順序改爲按字母升序排列?Rails:在選擇表單助手中指定排序順序
<%= select('category', 'name', Category.all.collect { |category| [ category.name ] }) %>
您應該使用Rails 3的方式:
<%= select('category', 'id',
Category.order('name ASC').all.map{ |c| [c.name, c.id] }) %>
,這將產生對每個類別中的HTML選項,如下列:
<option value="1">CategoryName</option>
當該值在類別ID,而不是其名稱:
您將得到params[:category_id]
而不是params[:category]
這將是一個包含類別名稱的字符串。然後在數據庫中找到一個類別,使用一個id好多了(因爲它們是唯一的,不像名稱),而且速度更快!