Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/60.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 修改设计以检查注册许可?_Ruby On Rails_Ruby On Rails 3_Devise_User Registration - Fatal编程技术网

Ruby on rails 修改设计以检查注册许可?

Ruby on rails 修改设计以检查注册许可?,ruby-on-rails,ruby-on-rails-3,devise,user-registration,Ruby On Rails,Ruby On Rails 3,Devise,User Registration,我的应用程序有一个权限模型和带有电子邮件字段的权限表。现有用户(Usermodel)可以添加他们希望邀请查看其信息的人的电子邮件地址。这些电子邮件地址存储在数据库的权限.email字段中 如何修改Desive的注册过程,使其仅允许在权限表中拥有电子邮件地址的人创建帐户 之前在用户模型上使用了验证器;e、 g validates :email, :my_access_control => true 然后创建这样的东西 class MyAccessControlValidator <

我的应用程序有一个
权限
模型和带有
电子邮件
字段的
权限
表。现有用户(
User
model)可以添加他们希望邀请查看其信息的人的电子邮件地址。这些电子邮件地址存储在数据库的
权限.email
字段中


如何修改Desive的注册过程,使其仅允许在
权限表中拥有电子邮件地址的人创建帐户

之前在用户模型上使用了验证器;e、 g

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
类MyAccessControlValidator
如果注册用户更改其电子邮件地址会发生什么情况?谢谢,我刚刚添加了
:on=>:create
,这样它就不会在更新期间运行验证。