0
我有,看起来像在我的控制器下面的方法:我如何使用CanCan对此进行授权?
def some_request
user = User.find(params[:friend_user_id])
req = user.requests.build(:from_id => current_user.id)
# do more stuff!
end
现在,这是一个为了讨论称为RandomController
控制器。这是一个具有非RESTful方法的RESTful控制器,如下所示。我只使用authorize_resource
并且没有加载资源。我想我可以通过在我的Ability类中执行以下操作来管理此项操作:
class Ability
include CanCan::Ability
def initialize(user)
if user
can :manage, Request do |req|
req.user_id == user.id
end
end
end
这不是这么做的。如何修改some_request来授权创建请求?基本上我想要做到以下几点:允许任何经过身份验证的用户对仅属于他们的请求执行所有CRUD操作(:manage)。用户与has_many
的关系如下:
has_many :requests
想法?
第1点有意义。 2没有。在我的Ability类中,initialize方法看起来像这样:def initialize(user),而且本质上是current_user。这并没有真正回答原来的问题。 – randombits
@randombits,克里斯看不到你的Ability类的其余部分,因此在可见的情况下,他的第二点确实是合理的。 – twe4ked