0
我正在使用设计,但用户模型与旧表相关,因此完美地工作。执行has_one关联
现在我想实现重置密码的能力,并强制执行新字段(reset_password_token
和reset_password_token_at
),这是我无法在原始表上创建的。
我决定用旧的delegate
与has_one
关系。下面是我所做的:
class User < LegacyDatabase
set_table_name 'T_CLIENTS'
devise :database_authenticatable, :authentication_keys => [:email]
devise :recoverable
has_one :user_setting
delegate :reset_password_token, :to => :user_setting
delegate :reset_password_sent_at, :to => :user_setting
# (...)
end
我现在的问题是,我需要强制执行,所有用户必须创建UserSetting当我需要访问新的领域。
如果我是亲自动手做的,我可以做UserSetting.find_or_create_by_user_id(...),但在走下那条路之前,我想知道rails是否提供了一种方法来实现这一点,而不会回退到手动代码。
永远孤单... :) – kolrie