【问题标题】:ruby on rails drop down menu selectedruby on rails 下拉菜单被选中
【发布时间】:2014-08-04 11:19:37
【问题描述】:

有很多关于这个的帖子......我很确定我的语法是正确的,但出于某种原因

:select => "some value or text" 对我不起作用。

这是我的表格:

=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 Mammals”是下拉列表中的另一家宠物店。

第二个 f.select 只是语法不同的同一件事......但它也不起作用。即使 :prompt => "whatever" 也能正常工作。它让我相信 :selected 对 ruby​​ 没有任何意义

【问题讨论】:

  • 尝试使用 id 而不是 :selected 的名称?

标签: ruby-on-rails ruby select drop-down-menu collection-select


【解决方案1】:

您好,只需使用所选中的 id。

 = f.select(:pet_store_id, PetStore.all.map {|p| [p.name,p.id]}, :selected => desired_pet_store.id)

【讨论】:

  • 目前,您似乎建议在所选声明中使用一个字符串,而它需要是 PetStore#id。我建议您将其编辑为 :selected => desired_pet_store.id
  • 好建议。虽然字符串也可以,但让我们保持完美。
  • 谢谢!说明 id 而不是 name 做到了
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-05-01
  • 1970-01-01
  • 2021-07-27
  • 2023-03-10
  • 2015-11-25
  • 1970-01-01
相关资源
最近更新 更多