在Rails中放入索引页面的请求

时间:2012-05-23 19:41:48

标签: ruby-on-rails

我正在创建一个包含大量照片的网站,每张照片下面都有一个显示Upvote的按钮。我希望该按钮提交更新数据库中字段的PUT请求。我目前有这个代码:

<% @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请求的upvote按钮,更新值而不是重定向到同一页面时。我无法弄清楚如何做到这一点。

2 个答案:

答案 0 :(得分:0)

首先,您的代码有误:将form_for(@user)替换为form_for(user)

其次,由于user对象已存在,因此默认为PUT。所以你无事可做。

答案 1 :(得分:0)

如果您想提升用户(不是图片?),请将其放入user_controller.rb文件中:

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

在你的app / models / user.rb

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

在你的config / routes.rb

resources :user do
  put :upvote
end

未经测试但应该给你一个起点。