2012-01-13 94 views
0

我的應用程序有一個Permission模型和permissions表的email場。現有用戶(User機型)可以添加的,他們想請查看他們的信息,誰的人的電子郵件地址。這些電子郵件地址存儲在數據庫中的permissions.email領域。修改設計檢查註冊權限?

我如何去修改制定的登記程序,使其只允許人們提供了一個電子郵件地址,在permissions表中創建一個帳戶?

回答

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 
+0

如果註冊用戶更改他們的電子郵件地址會發生什麼? – Clay 2012-01-13 19:37:53

+1

謝謝,我只是說':上=>:create',這樣它不會運行在更新過程中驗證。 – Clay 2012-01-13 20:24:07