我正在使用 Devise 进行用户身份验证,并且正在覆盖/修改注册控制器上的创建操作,但是,它有变得非常冗长和重复自己太多的危险。我正在创建一个应用程序,用户可以在其中为其帐户设置一个密钥持有者,该密钥持有者具有某些特权,以及一个具有只读访问权限的访客。
我想要实现的是在 create 方法中使用“资源”对象,而不是指定我是指来宾还是密钥持有者。例如,检查用户是否已经为他们的帐户拥有一个密钥持有者或访客(他们只被允许一个)。
即,而不是类似的东西:
if @user.keyholder_id
# don't create keyholder
end
和
if @user.guest_id
# don't create guest
end
是否可以使用当前的资源名称,例如:
if @user.{resource_name}_id.nil?
# create resource in question
end