0

这是我在这里的第一篇文章,所以我想说你好:)

我是新来的铁路。在我的应用程序中,我使用 device + cancan + rolify。具有角色 :admin 的用户可以管理所有,这工作得很好,可以创建订单并投票赞成或反对。接下来我想要,具有角色 :loc_adm 的用户可以创建订单并且只能在自己的订单中投票。但这是我的问题。当我尝试我的能力时:

def initialize(user)
user ||= User.new
if user.role? :admin
 can :manage, :all
else
 if user.role? :lok_adm 
  can :manage, Order, :user_id => user.id
  can :manage, Vote, :user_id => user.id
 end
 can :read, :all
end

具有角色 :lok_adm 的用户不仅可以按自己的顺序投票。下面我发送我的模型。

class Order
 belongs_to :user
 has_many :votes

class Vote
 belongs_to :user
 belongs_to :order

class User
 has_many :orders
 has_many :votes
4

1 回答 1

0

你没有设置他们无法管理的东西。添加

cannot :manage, :all

超出他们 lok_adm 可以管理的范围

你也可以做

if condition
elsif another_condition
end

而不是

if
else
  if
  end
end
于 2014-02-26T12:13:29.763 回答