2012-09-09 22 views
0

我想要一個按鈕或鏈接,將創建一個投票,我收集我必須使用一個帖子,所以我使用button_to,我目前的代碼只是添加:歌曲和:user_id到按鈕元素本身,從而不工作,我做錯了什麼?button_to用params提交文章創建記錄

<% @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

做到這一點最簡單的方法是使用軌道經典form_for幫助程序,但爲每個屬性設置輸入類型爲hidden。還需要爲每個輸入設置默認值(據我所知只有一個 - :song)。然後將button_to更改爲通常的提交按鈕。

+0

我想過這個,但也想通了,必須有更好的方法 –

0

它看起來像我只是把url:hash和:user_id的值放在url散列之外。嘗試用這個替換你的按鈕:

<%= button_to '+', {:controller => "votes", :action => "create", :song => song.id, :user=> session[:user_id]}, :method=>:post %> 
+0

在這種情況下,參數被添加到網址,我想要一個職位 –

+0

在軌道沒有區別參數添加到URL和參數 – weexpectedTHIS

+0

如果是看起來困擾你的網址,那麼你需要使用尼克關於使用form_for的建議。 – weexpectedTHIS