这发生在Approval模型中。 Approval具有以下属性:email。因此,说self.email使用其电子邮件属性调用Approval类的Object。enter code here
def associate_correct_user
new_user = User.find_or_create_by_email self.email do |u|
u.invite!
end
如果我在这里创建用户,我需要传递另外两个属性(first_name和last_name)。这些属性需要从另一个模型电子邮件中提取,其中self.email已经过验证。
这是我脑子里有意义的事情:
def associate_correct_user
new_user = User.find_or_create_by_email self.email do |u|
user = Email.find_by_email(self.email)
u.first_name = user.first_name
u.last_name = user.last_name
u.invite!
end
这会创建用户,但不会将first_name和last_name属性设置为此新用户...
答案 0 :(得分:0)
创建用户时显示log / development.log的行。可以是first_name,last_name是受保护的属性。 这里有一个find_or_create_by http://api.rubyonrails.org/classes/ActiveRecord/Base.html#label-Dynamic+attribute-based+finders的例子 它使用不同的语法。
User.find_or_create_by_name('Bob', :age => 40) { |u| u.admin = true }