0

私のアプリには、フィールドを持つPermissionモデルとpermissionsテーブルがありemailます。既存のユーザー (Userモデル) は、情報を表示するために招待したい人の電子メール アドレスを追加できます。これらの電子メール アドレスはpermissions.email、データベースのフィールドに保存されます。

permissions表にあるメールアドレスを持つ人だけがアカウントを作成できるように、Devise の登録プロセスを変更するにはどうすればよいですか?

4

1 に答える 1

1

ユーザーモデルのバリデーターでこれを以前に行いました。例えば

validates :email, :my_access_control => true

そして、このようなものを作成します

class MyAccessControlValidator < ActiveModel::EachValidator
  def validate_each(object, attribute, value)
    if ... not in permissions table.. 
      ... add to objects error collection why they cannot register
    end
  end
end
于 2012-01-13T17:46:27.770 に答える