如何使用rails中的当前ID预先填充我的选择框

时间:2016-07-27 08:04:27

标签: ruby-on-rails erb

我的表单中有一个选择框,我可以从列表中选择一个用户。这样可以正确保存并将用户应用到我的Chasing模型中,但我想知道是否可以让select显示当前分配的用户,而不是每次编辑对象时都重置它。我的表单代码是:

<%= f.select :user_id, options_for_select(User.all.map {|c| [c.name, c.id]}), { :include_blank => "Please select user"}, {:class => "form-control"} %>

我也做了这样,以便表单需要保存用户,但是在某些情况下我需要使用默认用户(称为“未分配”)保存新的Chasing。有没有办法将选择框默认为此用户除非追踪已经为其分配了用户?

对此的任何帮助将不胜感激:)

3 个答案:

答案 0 :(得分:1)

根据这个:http://apidock.com/rails/v4.2.1/ActionView/Helpers/FormOptionsHelper/options_for_select

<%= f.select :user_id, options_for_select(User.all.map {|c| [c.name, c.id]}, current_user.id), { :include_blank => "Please select user"}, {:class => "form-control"} %>

(将current_user替换为您要放入的用户对象)

答案 1 :(得分:1)

只需在@object.field_name之后的options_for_select中添加collection,如下所示。

<%= f.select :user_id, options_for_select(User.all.map {|c| [c.name, c.id]}, @object.user_id), { :include_blank => "Please select user"}, {:class => "form-control"} %>

希望这能解决你的问题。

答案 2 :(得分:0)

您可以将:selected => value作为参数传递

<%= f.select :user_id, options_for_select(User.all.map {|c| [c.name, c.id]}), { :include_blank => "Please select user"}, {:class => "form-control", :selected => o.customer_id }  %>