2

在 Rails 应用程序中,我试图在选择标记中格式化值。

就像是

<%= 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 回答