Я пытаюсь назначить пользователя в группу своей компании на основе его домена электронной почты. Я использую разработку + подтверждение, поэтому я избегал использования регулярных выражений (не нужно подтверждать, что это действительный адрес электронной почты...), и я пытаюсь сделать это простым способом. По сути, это заставит пользователей company_id (которые совпадают с этой таблицей) быть назначенными при регистрации, а затем не позволит им зарегистрироваться, если их компания не существует. Таким образом, это будет работать как для [email protected], так и для [email protected].
В пользовательской модели
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: "[email protected]", password: "foobar")
Я получаю неопределенную локальную переменную или метод 'user' для #‹'User....
Спасибо за любую помощь, все еще изучаю рельсы...
user_domain = (:email).split('@').last
‹-:email
должно бытьemail
я полагаю. - person Chris Salzberg   schedule 05.11.2012