Rails用户只能按自己的顺序投票

时间:2014-02-26 12:08:39

标签: ruby-on-rails devise rolify

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

我是铁杆新手。在我的应用程序中,我使用device + cancan + rolify。具有角色的用户:admin可以很好地管理所有这项工作,可以创建订单并向上或向下投票。 接下来我想要的是,具有role: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

1 个答案:

答案 0 :(得分:0)

您没有设置他们无法管理的内容。添加

cannot :manage, :all

高于他们lok_adm可以管理的内容

您也可以

if condition
elsif another_condition
end

而不是

if
else
  if
  end
end