预先选择基于参数的表格输入

时间:2013-08-15 10:39:33

标签: ruby-on-rails ruby ruby-on-rails-3 ruby-on-rails-3.1 ruby-on-rails-3.2

我在索引页面上有一个链接到new_assignment_path

的按钮
<% @users.each do |user| %>
<tr>
  <td><%= link_to user.name, user %></td>
<td><%= link_to 'Assign to Class', new_assignment_path, :class => 'btn btn-mini' %></td>
</tr>
<% end %>

我想要它,这样当你点击它时,它会带你到new_assignment_path,并在那些页面上选择下拉列表。

<%= simple_form_for(@assignment) do |f| %>
 <%= f.error_notification %>

  <div class="form-inputs">
<%= f.input :user_id, collection: User.all.collect, as: :select %>
 </div>

  <div class="form-actions">
  <%= f.button :submit %>
  </div>
<% end %>

并将下拉菜单自动设置为按钮所在用户的user.id.

<%= link_to 'Assign to Project', new_assignment_path(@assignment, :user_id => user.id), :class => 'btn btn-mini' %>

<%= link_to 'Assign to Project', new_assignment_path(:user_id => user.id), :class => 'btn btn-mini' %>

他们都没有工作。 这样做的最佳方式是什么?

1 个答案:

答案 0 :(得分:1)

使用第二个选项尝试在AssignmentsController中设置实例变量。

@user_id = params[:user_id]

然后您需要在表单中指定默认值

<%= f.input :user_id, collection: User.all.collect, selected: @user_id %>

您不需要使用简单表单as: :select