Ruby on rails 通过select_标记发送额外参数值

Ruby on rails 通过select_标记发送额外参数值,ruby-on-rails,ruby-on-rails-3,ruby-on-rails-3.1,ruby-on-rails-3.2,Ruby On Rails,Ruby On Rails 3,Ruby On Rails 3.1,Ruby On Rails 3.2,我的看法是: <%= form_tag(update_user_products_path, :id => "update_user_form") do %> <%@products.each do |product| %> <div class = "prod"> <a href='<%= recommendations_path(:product_id => product.id, :

我的看法是:

<%= form_tag(update_user_products_path, :id => "update_user_form") do %>
<%@products.each do |product| %>
            <div class = "prod">
            <a href='<%= recommendations_path(:product_id => product.id, :rating_set_id => params[:rating_set_id]) %>' target="_blank"><img src='<%= product.cover_img %>' class='product_image_prods'></img></a>
            <div class= "title"><small><b><%= link_to truncate(product.title, :length =>30),  recommendations_path(:product_id => product.id, :rating_set_id => params[:rating_set_id]), :target => '_blank' %></b></small></div>
            <br/>
            <div><em>Current Rating: <%= product.rating %> </em></div>
            <%= select_tag "user_id:#{product.id}", options_for_select(User.all.collect {|u| [ u.name, u.id ] })%>
            </div>
            <% end %>
    <%= submit_tag %>
<% end %>

我可以通过(“:”)拆分params.keys。执行此操作将返回与params.keys相同的输出。是否有其他方法将product.id传递给“我的更新”\u用户操作?

您可以将选择的名称更改为

<%= select_tag :user_id, options_for_select(User.all.collect {|u| [ u.name, u.id ] }), name: "users[#{product.id}]" %>


这将给你一个
params[:users]
的散列,其中键是产品ID,值是用户ID

你能在另一个问题中发布吗?确保包含控制器代码:)我算出了:)。我必须遍历产品ID和用户ID;我的方法最初只是迭代产品ID。非常感谢你!
<%= select_tag :user_id, options_for_select(User.all.collect {|u| [ u.name, u.id ] }), name: "users[#{product.id}]" %>