0

我正在尝试使用一个按钮或链接来创建投票,我认为我必须使用一个帖子,所以我使用的是 button_to,我当前的代码只是将 :song 和 :user_id 添加到按钮元素本身,因此没有工作,我做错了什么?

<% @songs.each do |song| %>
  <tr>
    <td class="plusvote"><%= button_to '+', {:controller => "votes", :action => "create"}, :song => song.id, :user=> session[:user_id] , :method=>:post  %></td>
    <td><%= song.votes.count %></td>
    <td><%= song.name %></td>
    <td><%= song.code %></td>
    <td><%= song.album %></td>
<% end %>

没有错误,按下/提交时的按钮/表单将无法正确发布,因为生成的 html 是:

<form action="/votes" class="button_to" method="post">
    <div>
        <input song="5" type="submit" user="1" value="+" />
        <input name="authenticity_token" type="hidden" value="tucB4fQ4XbrnzF3lFcQnMq/1rSaPrcsc/tFJ1SQttns=" />
    </div>
</form>
4

2 回答 2

0

在我看来,您只是将 :song 和 :user_id 值放在了 url 哈希之外。尝试用这个替换你的按钮:

<%= button_to '+', {:controller => "votes", :action => "create", :song => song.id, :user=> session[:user_id]}, :method=>:post  %>
于 2012-09-09T13:55:22.380 回答
0

最简单的方法是使用 rails 经典助手,但为每个属性form_for设置输入类型。hidden此外,您还需要为每个输入设置默认值(据我所知,只有一个 – :song)。然后将 button_to 更改为通常的提交按钮。

于 2012-09-09T11:08:20.340 回答