[英]Put Request From Index Page In 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 %>
我希望它能够在用户单击upvote按钮时调用PUT请求,更新值,然后重定向到同一页面。 我不知道该怎么做。
首先,您的代码是错误的:用form_for(@user)
替换form_for(@user)
form_for(user)
其次,由于user
对象已经存在,因此它将默认为PUT
。 因此,您无需执行任何操作。
如果您要投票给用户(而不是图片?),请将其放入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
未经测试,但应该给您一个起点。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.