2012-05-23 29 views
0

我正在製作一個網站,其中有一堆照片,每張照片下面有一個表示Upvote的按鈕。我想要那個按鈕提交一個PUT請求來更新數據庫中的一個字段。目前,我有這樣的代碼:從Rails的索引頁面發出請求

<% @users.each do |user| %> 
    <%= image_tag user.avatar.url(:thumb) %> 
    <% form_for (@user) do |f| %> 
    <input name="commit" type="submit" value="Upvote"> 
    <% end %> 
<% end %> 

我想它,當用戶點擊該按鈕給予好評調用PUT請求,更新的價值,比重定向到同一頁面。我無法弄清楚如何做到這一點。

回答

0

首先你的代碼是錯誤的:與form_for(user)

二取代form_for(@user),因爲user對象已存在,則默認爲PUT。所以你無事可做。

+0

我這樣做,它停止給我錯誤。唯一的問題是沒有按鈕出現「提交」命令。 – Julian25

+0

add'<%= f.submit%>' – apneadiving

0

如果你想給予好評用戶(?不是圖片),然後把它放進你的user_controller.rb文件:

def upvote 
    @user = User.find(params[:user]) 
    @user.upvote 
end 

在您的應用程序/模型/ user.rb

def upvote 
    self.votes += 1 
    self.save 
end 

在你的配置/ routes.rb

resources :user do 
    put :upvote 
end 

未經測試,但應該給你一個出發點。

+0

謝謝!我已經實現了代碼實際上upvote圖像(我有用戶列出,因爲我使用鐵軌腳手架)。我只是試圖找到一種方法來從索引頁面調用方法。 – Julian25