【发布时间】:2013-04-04 11:47:44
【问题描述】:
我有以下代码:
#/app/models/users/user.rb
class Users::User < ActiveRecord::Base
has_many :phones, class_name: "Users::Phone"
end
#/app/models/users/phone.rb
class Users::Phone < ActiveRecord::Base
belongs_to :user, class_name: "Users::User"
attr_accessible :phone
end
#/app/models/ability.rb
class Ability
include CanCan::Ability
def initialize(user)
can :read, :all
unless user.nil? #logged_in
if user.is? :admin
can :manage, :all
else
can :create, Users::Phone, user_id: user.id
end
end
end
end
我想检查是否只能为用户创建自己的手机
#/app/views/users/users/show.html.slim
- if can? :create, Users::Phone.new
a[href="#{new_user_phone_path(@user)}"] Add phone
那行不通,因为我应该将 user_id 传递给手机型号(如 Users::Phone.new user_id: user.id),但由于手机的批量分配,我不能这样做。
那么我如何检查:create 用户的电话功能?
【问题讨论】:
标签: ruby-on-rails cancan