对于我的形式,我有这样的:打印两个值(Rails的形式)
<%= tag_field.collection_select(:id, Material.order(:name), :id, :name,
:prompt => "-select-")%>
这将打印我的材料名称。 示例:
Cat
Cat
但是,这没有帮助,因为材料具有相同的名称。 “材质”记录中还有另一个属性:颜色。
我希望它打印出此下拉
Cat - Brown
Cat - Orange
我如何去这样做呢?我尝试调用一个方法,但它不打印我想要的方式。这就是我所做的。
View:
<%= tag_field.collection_select(:id, Material.order(:name), :id, :something,
:prompt => "-select-")%>
Model:
def something
materials_array = []
Material.all.each do |material|
if material.color == nil
material.name + '-' + material.size
else
materials_array.push(material.name + '-' + material.color)
end
end
materials_array
end
然而,下拉打印出这样的:
["Cat - Brown", "Cat - Orange"]
["Cat - Brown", "Cat - Orange"]
它打印出两次,相同的价值观。我觉得我很近?请帮忙。