我正在尝试创建投票的按钮或链接,我收集我必须使用帖子,所以我使用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>
答案 0 :(得分:0)
最简单的方法是使用rails classic form_for
helper,但为每个属性设置输入类型为hidden
。此外,您还需要为每个输入设置默认值(据我所知,只有一个 - :song
)。然后将button_to更改为常规提交按钮。
答案 1 :(得分:0)
在我看来,你只需要将:song和:user_id值放在url hash之外。尝试用以下代码替换按钮:
<%= button_to '+', {:controller => "votes", :action => "create", :song => song.id, :user=> session[:user_id]}, :method=>:post %>