有很多关于此的帖子......我非常确定我的语法是正确的,但出于某种原因
:select => "一些价值或文字"不适合我。
这是我的表格:
=form_for(@pet) do |f|
=f.label :name
=f.text_field :name, :placeholder => 'enter pet name...'
%p
=f.label :species
=f.text_field :species, :placeholder => 'enter species name...'
%p
=f.label :color
=f.text_field :color, :placeholder => 'enter color of pet...'
%p
=f.label :pet_store_id
= f.collection_select(:pet_store_id, PetStore.all, :id, :name, {:selected => "Moe's Mammals"})
= f.select(:pet_store_id, PetStore.all.map {|p| [p.name,p.id]}, :selected => "Moe's Mammals")
%p
=f.submit
查看最后一个...它将列出我所有的PetStore名称,这是我想要的,但它总是默认为该列表中的第一个名称....即使" Moe' s哺乳动物"是下拉列表中另一个宠物商店的确切名称。
第二个f.select在不同的语法中是相同的东西......但它也不起作用。即使:prompt => "无论"会很好的。这让我相信:选择并不意味着任何东西可以用来反对
答案 0 :(得分:0)
您只需使用所选的ID。
= f.select(:pet_store_id, PetStore.all.map {|p| [p.name,p.id]}, :selected => desired_pet_store.id)