在我看来,我有一个按钮:
<%= button_to 'Check In', { action: "check_in", id: @post.id }, method: "patch", class: "btn btn-primary" %>
在我的控制器中,我有一个匹配的方法:
def check_in
respond_to do |format|
if @post.update(post_params)
@checkout = Checkout.where(:post_id => @post.id, :author_id => @post.author_id).each do |c|
c.checked_in = DateTime.now
c.save
end
else
...
end
end
我也有匹配的路线:
get 'posts/check_in/:id' => 'posts#check_in'
但是,每当我点击按钮时,只会发生更新操作。从日志中:
PostsController处理#dpdate为HTML
为什么rails选择更新操作而不是check_in?
答案 0 :(得分:0)
patch
方法重定向到更新操作,将其删除或改为使用get
。