Rails link_to或button_to发布带参数的请求

Cad*_*cat 23 ruby-on-rails ruby-on-rails-3

我有一个宁静的(脚手架生成的)控制器和投票模型,我只是试图在视图中添加一个字段,当点击时,将为给定的汽车创建一个新的投票.它需要是一个POST,我应该在rails中做到这一点的方式是什么?

<% @cars.each do |car| %>
  <tr>
    <td><%= button_to '+', {:controller => "votes", :action => "create"}, :car_id => car.id, :user_id=> session[:user_id] , :method=>:post  %></td>
    <td><%= car.votes.count %></td>
    <td><%= car.name %></td>
    <td><%= car.code %></td>
    <td><%= car.album %></td>
<% end %>
Run Code Online (Sandbox Code Playgroud)

Ere*_*bih 31

<td><%= button_to '+', {:controller => "votes", :action => "create", :car_id => car.id, :user_id=> session[:user_id]} , :method=>:post  %></td>
Run Code Online (Sandbox Code Playgroud)

这将使VotesController创建动作中的params [:car_id]和params [:user_id]可用.


小智 25

Rails 5 + haml,例如:

= button_to "smth", some_path, method: :get, params: { start_point: 3.month.ago }
Run Code Online (Sandbox Code Playgroud)

关键是使用params键,然后在控制器中你可以通过@some_var = params [:start_point]获得价值

  • 这是正确的回应,也可以与“post”一起使用 (4认同)