Ruby on rails 将来自索引页的请求放入Rails中

Ruby on rails 将来自索引页的请求放入Rails中,ruby-on-rails,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。我希望该按钮提交一个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 %>


我希望它在用户单击upvote按钮时调用PUT请求,更新值,然后重定向到同一页面。我不知道怎么做。

首先,你的代码是错误的:将(@user)的
form\u替换为(@user)


其次,由于
用户
对象已经存在,它将默认为
PUT
。因此,您无事可做。

如果您想向用户投票(而不是图片?),请将其放入您的user\u 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

未测试,但应该给您一个起点。

我这样做了,它不再给我错误。唯一的问题是“提交”命令没有出现按钮。谢谢!我已经实现了实际上传图像的代码(我列出了用户列表,因为我使用了rails脚手架)。我只是想找到一种从索引页调用该方法的方法。