我是Rails和编程的新手。我正在使用Devise进行注册,并拥有一个具有两个角色的用户模型:project_manager和sales。
注册后,如果用户选择project_manager,我希望注册继续照常。如果选择了销售,我需要针对白名单检查电子邮件域。
最初,我能够使用两个单独的模型来设计和验证Sales模型的电子邮件格式:
validates_format_of :email, :with => /\A([^@\s]+)@(company\.com)|(work\.com)\z/
在创建用户记录之前,我无法弄清楚如何根据所选角色运行此验证。
答案 0 :(得分:0)
validates_format_of :email, :with => /\A([^@\s]+)@(company\.com)|(work\.com)\z/, if: ->{ |user| user.role == 'sale' }
答案 1 :(得分:0)
validates :email, format: { with: /\A([^@\s]+)@(company|work)\.com\z/i }, if: ->(user) { user.role == 'sale' }