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

に条件によって真か偽を返すように変更すれば良い。

Tags of current page

, ,