devise (だいたい v2.1.0.rc) のソースコードを調べたときのメモ
mattr_accessor
mattr_* は @@ で始まるクラス変数へのアクセスを定義できる。
Devise.setup
Devise.setup do |config|
...
end
で config は module の Devise でブロックでクラス変数を設定することになる。
パスワードを設定するときの確認
パスワードを設定するときに2回入力して確認するのは validates_confirmation_of で設定してユーザのモデルで valid? などのメソッドで行っていた。
email を条件によって必須かどうかを変更する
devise :validatable
とすると email が必須項目になる。 email_required? メソッドが真を返すときに email が必須になり、 このメソッドは標準では常に真を返す。
def email_required?
...
end
に条件によって真か偽を返すように変更すれば良い。