Ruby on rails 如何在使用Desive注册时自动向用户添加角色
我正在使用Desive 1.1.5。我得到了一个Ruby on rails 如何在使用Desive注册时自动向用户添加角色,ruby-on-rails,authentication,ruby-on-rails-3,devise,Ruby On Rails,Authentication,Ruby On Rails 3,Devise,我正在使用Desive 1.1.5。我得到了一个角色和一个角色分配表。当用户注册时,是否可以在“我的角色分配”表中自动分配角色?非常感谢 我试过了,但没用 class User < ActiveRecord::Base after_create :assign_role_after_sign_up protected def assign_role_after_sign_up(user) RoleAssignment.create(:role_id
角色
和一个角色分配
表。当用户注册时,是否可以在“我的角色分配”表中自动分配角色?非常感谢
我试过了,但没用
class User < ActiveRecord::Base
after_create :assign_role_after_sign_up
protected
def assign_role_after_sign_up(user)
RoleAssignment.create(:role_id => 1, :user_id => user.id)
end
end
class用户1,:user\u id=>user.id)
结束
结束
在用户
模型中创建一个后创建回调,为新创建的用户创建并保存一个角色
有关回调的详细信息,请参见。您的创建后方法将无法工作,因为您试图传递用户
,这在模型中并不重要。所有用户属性实际上都可以作为实例变量访问,因此您应该改为:
def assign_role_after_sign_up
RoleAssignment.create(:role_id => 1, :user_id => id)
end
如果用户和角色分配之间存在关系(如果不存在,为什么不存在?),您只需执行以下操作:
# If user :has_one :role_assignment
def assign_role_after_sign_up
create_role_assignment(:role_id => 1)
end
# If user :has_many :role_assignments
def assign_role_after_sign_up
role_assignments.create(:role_id => 1)
end