不能在控制器中使用表单变量来保存选择数据

时间:2016-07-03 13:58:25

标签: mysql ruby-on-rails

<tr>
    <th><%=f.label(:id, "Choose car")%></th>
    <td><%= f.select(:id, @cars_all.map{|c| [c.name, c.id]}) %></td>
  </tr>
  <tr>
    <th><%=f.label(":list_id", "Choose List")%></th>
    <td><%= f.select(:list_id, @lists.map{|s| [s.name, s.id]}) %></td>
  </tr>

我想获取这两个选择值的值,以便在控制器中将它们添加到联合表的数据库中,

@car_id = params[:id]

无法正常工作,也无法获取数据,是否可以回复这些值

1 个答案:

答案 0 :(得分:0)

用户无法直接访问控制器中的参数,它将包含任何与form_for object_name相同名称的哈希值 假设:

<%= form_for(@profile) do |f| %>
  <%= f.text_field :first_name %>
  <%= f.text_field :last_name %>
<%= f.submit %>
<% end %>

所以参数将在控制器中

"profile"=>{
"first_name"=>"Daniel",
"last_name"=>"Clark"
  }

我可以在

中访问

PARAMS [:档案] [:如first_name]

所以在你的情况下,请检查form_for对象并通过它访问它。

您可以通过

访问它

PARAMS [form_for_object_hash_name] [:ID]

或尝试将调试器放在控制器上并检查正确的参数