Ruby on rails rails可以执行自定义操作
我试图阻止各种项目的编辑使用cancan发布他们自己的作品,但这并没有达到预期效果。到目前为止,其他一切都运转良好 例如:Ruby on rails rails可以执行自定义操作,ruby-on-rails,ruby,ruby-on-rails-3,cancan,railscasts,Ruby On Rails,Ruby,Ruby On Rails 3,Cancan,Railscasts,我试图阻止各种项目的编辑使用cancan发布他们自己的作品,但这并没有达到预期效果。到目前为止,其他一切都运转良好 例如: can :publish, [Article, Review] do |doc| doc.user != @user end 看法 我想你是想这么做的 cannot :publish, [Article, Review], :user_id => @user.id 这意味着,如果文章的创建者是他们,用户就不能发布文章或评论 例如,在我的应用程序中,我有一个登录
can :publish, [Article, Review] do |doc|
doc.user != @user
end
看法
我想你是想这么做的
cannot :publish, [Article, Review], :user_id => @user.id
这意味着,如果文章的创建者是他们,用户就不能发布文章或评论
例如,在我的应用程序中,我有一个登录的用户可以创建新问题的地方。用户可以管理自己的问题,用户可以对问题进行投票。但是,用户不能对自己的问题进行投票。这听起来熟悉吗?:)
class Ability
include CanCan::Ability
def initialize(user)
@user = user || User.new # for guest
@user.roles.each { |role| send(role) }
if @user.roles.size == 0
can :read, :all #for guest without roles
end
end
def author
can :manage, [Article, Review] do |doc|
doc.try(:user) == @user
end
can :submit, [Article, Review]
end
def editor
can :manage, [Article, Review]
can :publish, [Article, Review] do |doc|
doc.user != @user
end
end
def admin
can :manage, :all
can [:submit, :publish, :reject], [Article, Review]
end
end
cannot :publish, [Article, Review], :user_id => @user.id
can [:new, :create], Question
can :manage, Question, :user_id => user.id
can :vote, Question
cannot :vote, Question, :user_id => user.id