0
私はdeviseを使用していますが、Userモデルは従来のテーブルに関連しているので完全に機能します。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(...)を手で行うことができましたが、そのパスを下る前に、レールがこれに戻ることなくこれを達成する方法を提供しているかどうかを知りたいと思いますマニュアルコード。
永遠に一人で... :) – kolrie