我需要将一个集合传递给 Formtastic 中的标准选择输入:
f.input :apple, :as => :select, :collection => Apple.all
问题是,尽管我需要 Formtastic 来访问与名称不同的方法。现在这确实是一个问题。我总是可以通过数组
f.input :apple, :as => :select, :collection => Apple.map { |a| a.format_name }
问题是,在此之后我将在控制器中获得字符串而不是不需要的 ID。我试图通过 Hash 代替:
options = Hash.new
Apple.each { |a| Apple.store(a.format_name, a.id) }
f.input :apple, :as => :select, :collection => options
现在的问题是,由于我使用的是 Ruby 1.8.7,哈希顺序是未指定的,我当然需要有序输入......
我可以想象一些解决方案,但所有这些都需要不必要的代码。
知道如何解决这个问题吗?