在Rails应用程序中,我正在尝试格式化选择标记中的值。
像
这样的东西<%= f.collection_select(:country_id, Country.order(:name), :id, :name.to_s.downcase) %>
downcase方法没有任何效果。我应该能够以这种方式使用它吗?如果没有,我该怎么办?
谢谢
答案 0 :(得分:3)
您可以为模型添加方法并为其添加符号
class Country
def name_to_lower
self.name.downcase
end
end
<%= f.collection_select(:country_id, Country.order(:name), :id, :name_to_lower) %>
或使用select - 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] } %>