Rails アプリで、select タグの値をフォーマットしようとしています。
何かのようなもの
<%= f.collection_select(:country_id, Country.order(:name), :id, :name.to_s.downcase) %>
downcase メソッドは効果がありません。このまま使えばいいのでしょうか?そうでない場合、私は何をすべきですか?
ありがとう
Rails アプリで、select タグの値をフォーマットしようとしています。
何かのようなもの
<%= f.collection_select(:country_id, Country.order(:name), :id, :name.to_s.downcase) %>
downcase メソッドは効果がありません。このまま使えばいいのでしょうか?そうでない場合、私は何をすべきですか?
ありがとう
モデルにメソッドを追加し、そのシンボルを入れることができます
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] } %>