我有一个包含动作的控制器:
class VotesController < ApplicationController
def action_1
@user = User.find_by(uid: params[:uid])
@user.votes.pluck(:author_uid).delete(current_user.uid)
current_user.user_votes.pluck(:recipient_uid).delete(@user.uid)
redirect_to root_url
end
end
我在视图文件中调用它时应该使用哪种方法:
= link_to 'Dislike', { controller: "votes", action: "action_1", uid: friend.uid }, method: "WHICH???"
谢谢!
答案 0 :(得分:0)
我们在rails 3中使用的方法相同。即&#39; GET&#39; 在rails 4中,只有使用方法&#39; PATCH&#39;更改操作才会更改。和&#39; PUT&#39;也在工作。
答案 1 :(得分:0)
您需要让rails路由器知道您可以访问控制器操作。因此,您需要在路径文件中为其创建条目,以便在视图中访问它。
类似的东西:
resources :votes do
get 'action_1', on: :collection
end
或其他类型的操作,具体取决于其目的(请参阅REST methods)
然后,您可以在观看中使用action_1_votes_url(uid: friend.uid)
或action_1_votes_path(uid: friend.uid)
答案 2 :(得分:0)
你有专门用于投票资源的VotesController,action_1
的目的是从这样的资源中删除。因此,无需创建自定义操作名称。
此案例的最佳操作名称为delete
。
然后链接方法也是delete
。