我最近使用CanCanCan(通过枚举)为我的rails应用程序添加了角色 - 但现在我想在注册时添加默认角色。我该怎么做呢?它是在控制器还是模型中?
我的用户模型:
insert into dvdNormal(dvdId, dvdTitle, year, publicRating, dvdStudioId, dvdStatusId, dvdGenreId)
(
select dvdId, dvdTitle, year, publicRating, studioId, StatusI, genreId
from dvd
join dvdStudio on d.studio = dvdStudio.studionName
join dvdStatus on d.status = dvdStatus.dvdStatusId
join dvdGenre on d.genre = dvdGenre.genre
);
我的能力模型 - 只有三个角色,我将通过为角色为1的用户播种数据库创建一个管理员,然后其他人在注册时应该是2。
class User < ActiveRecord::Base
#Defining different roles
enum role: [:Admin, :User, :Guest]
#Users can only create one scholarship application
has_one :applications
# Include default devise modules. Others available are:
# :confirmable, :lockable, :timeoutable and :omniauthable
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatable
end
答案 0 :(得分:0)
您可以为模型添加回调
before_create :set_default_role
private
def set_default_role
self.role ||= Role.find_by_name('your_role')
end
或者你可以做
before_create :set_default_role
def set_default_role
self.update_attribute(:role,'your_role')
end