0

我有一个控制器,其中包含一个动作:

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???"

谢谢!

4

3 回答 3

0

您有 VotesController 专用于 Vote 资源,其目的action_1是从此类资源中删除。所以不需要自定义动作名称。

这种情况下最好的动作名称是delete.

然后链接方法delete也是如此。

于 2013-11-11T12:23:03.210 回答
0

我们在 rails 3 中使用的方法相同。即“GET” 在 rails 4 中,只有更新操作是使用方法“PATCH”进行更改,并且“PUT”也有效。

于 2013-11-11T11:59:17.340 回答
0

您需要让 rails 路由器知道您可以访问控制器操作。因此,您需要在路由文件中为其创建条目,以便在视图中访问它。

就像是:

resources :votes do
  get 'action_1', on: :collection
end

或其他类型的操作,具体取决于其目的(请参阅REST 方法

然后你可以在你的视图中使用action_1_votes_url(uid: friend.uid)action_1_votes_path(uid: friend.uid)

于 2013-11-11T12:00:51.737 回答