我正在尝试根据他们的电子邮件域将用户分配到他们的公司组。我正在使用设计+确认,所以我避免使用正则表达式(不需要验证它是否是有效的电子邮件......),并试图以一种简单的方式做到这一点。所以本质上,它会强制用户 company_id (与该表匹配)在注册时分配,然后如果他们的公司不存在则不允许他们注册。所以这适用于 test@company.com 和 test@recruiting.company.com
在用户模型中
before_create :company_placement
...
def company_placement
user_domain = (:email).split('@').last
while user_domain.split('.').count > 2
user_domain = user_domain.split('.', 2).last
end
if Company.find_by_domain(user_domain) != nil
(:company_id) = Company.find_by_domain(user_domain).id
else
#error out
end
end
当我逐步在rails控制台中执行此操作时,它似乎有效。但是当我运行时在控制台中,
> user = User.create!(name: "test", email: "test@example.com", password: "foobar")
我得到未定义的局部变量或方法'user' for #<'User....
感谢您的帮助,仍在学习rails...