我在 ROR 应用程序中使用哈希常量。我想显示哈希常量中的名称
以进行下拉。
helper.rb
PRODUCE_GROWING_METHODS = [
{id: 1, name: 'Conventional'},
{id: 2, name: 'Organic'},
]
def produce_growing_methods
PRODUCE_GROWING_METHODS
end
_product.haml
= f.simple_fields_for :produce_details do |pd|
= pd.input :produce_growing_method, :collection => produce_growing_methods.collect { |x| [x[0], x[1]] }, :prompt => "Select Growing Method"
我按照上面的 _product.haml
进行了尝试,但我得到的是空的下拉菜单。常量中的名称
不会填充在下拉列表中。
任何人都可以帮助我如何将 PRODUCE_GROWING_METHODS
哈希常量中的名称
显示到下拉列表中。
谢谢
最佳答案
您应该通过键映射哈希。在您的情况下,键是 :id
和 :name
:
produce_growing_methods.map { |x| [x[:id], x[:name]] }
实际上,使用通用解决方案总是比手动映射更好。 这是实现相同目的的更好方法,但它对于千个哈希数组也适用:
ary = [
{id: 1, name: 'Conventional'},
{id: 2, name: 'Organic'},
]
ary.map(&:values)
#=> [[1, "Conventional"], [2, "Organic"]]
关于ruby-on-rails - 在下拉列表中显示辅助方法的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34901997/