options_for_select选中的值不起作用

时间:2013-12-04 11:21:50

标签: ruby-on-rails

我有一个projectuser数据表单,但是当我编辑projectuser时,所选的projectuser保持为空,出了什么问题?这是代码:

= f.select :user_id, options_for_select(@users.map{ |u| [u.full_name, u.id] }, selected: @projectuser.full_name), include_blank: true

2 个答案:

答案 0 :(得分:10)

文档说明:

(...) 
options_for_select(container, selected = nil) public
(...)
(million examples)

所以你不应该通过selected: something,而只是something。此外,这个东西需要选择值,而不是文本:

= f.select :user_id, options_for_select(@users.map{ |u| [u.full_name, u.id] }, @projectuser.id), include_blank: true

答案 1 :(得分:0)

根据你的回答我写了这样的东西。

f.select :relationship, 
    options_for_select(
        Relationship.all.map{|rel| [rel.name, rel.id]},
        @order.relationship.id.to_s ),
    prompt: 'Please select', class: "form-control"

我在nil错误时收到了一个被调用的ID,因为它正在尝试设置一个尚不存在的选定值。 我在轨道上3.13 我的订单模型与关系模型之间存在belongs_to关系

感谢您的帮助。