Опитвам се да присвоя потребител към групата на неговата компания въз основа на неговия имейл домейн. Използвам devise + потвърждение, така че избягвах да използвам регулярен израз (не е необходимо да потвърждавам, че е валиден имейл...) и се опитвам да направя това по прост начин. Така че по същество това ще принуди потребителите 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