对于我的表格,我有这个:
<%= tag_field.collection_select( :id, Material.order(:name), :id, :name,
:prompt => "-select-")%>
这会打印我的材料名称。例子:
Cat
Cat
但是,这无济于事,因为材料具有相同的名称。Material 记录中还有另一个属性:color。
我希望它在下拉列表中打印出来
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"]
它打印了两次,具有相同的值。我想我很接近?请帮忙。