2

Rails アプリで、select タグの値をフォーマットしようとしています。

何かのようなもの

<%= f.collection_select(:country_id, Country.order(:name), :id, :name.to_s.downcase) %>

downcase メソッドは効果がありません。このまま使えばいいのでしょうか?そうでない場合、私は何をすべきですか?

ありがとう

4

1 に答える 1

3

モデルにメソッドを追加し、そのシンボルを入れることができます

http://api.rubyonrails.org/classes/ActionView/Helpers/FormOptionsHelper.html#method-i-collection_selectを参照してください

class Country
  def name_to_lower
    self.name.downcase
  end
end

<%= f.collection_select(:country_id, Country.order(:name), :id, :name_to_lower) %>

または選択を使用 - http://api.rubyonrails.org/classes/ActionView/Helpers/FormOptionsHelper.html#method-i-select

<%= f.select(:country_id, Country.order(:name).map {|x| [x.name.downcase, x.id] } %>

データベースで大文字と小文字が区別される場合は、大文字と小文字の並べ替えを指定することをお勧めします

<%= f.select(:country_id, Country.order("UPPER(name)").map {|x| [x.name.downcase, x.id] } %>
于 2012-06-09T05:35:04.897 に答える