我有员工,联系人和用户。创建新的联系人或员工时,他们各自的模型会创建一个新用户。这些是关系:
Contact belongs_to :user
Employee belongs_to :user
User has_one :contact
User has_one :employee
现在我在所有3个表中都有一个电子邮件字段。但是,我想从联系人和员工中删除电子邮件字段,并仅使用User.email。
目前,联系人模型代码是:
before_create :create_user
protected
def create_user
self.user = User.create({ :email => self.email, :password => 'password' })
return user.save
end
联系表格有:
<%= f.input :email %>
如何将电子邮件发送到联系表单并将其传递给联系人控制器以输入新的用户记录?
感谢您的帮助!
UPDATE1
我尝试了这个,但它不起作用:
联系表格:
<%= text_field_tag :email %>
联络管理员:
protected
def create_user
self.user = User.create({ :email => params[:email], :password => '123456' })
return user.save
end
更新2
我试过这个,但它不起作用:
联系表格:
<%= params[:email] = email_field_tag 'email'%>
联络管理员:
before_create :create_user
protected
def create_user
self.user = User.create({ :email => params[:email], :password => '123456' })
return user.save
end
答案 0 :(得分:0)
您可以使用text_field_tag
辅助方法在视图中创建输入字段,但这听起来像滥用模型。如果您的表单代表“联系”模式,为什么不将email
属性保留在Contact
中并将其从User
中删除?然后,为了方便起见,您可以将以下内容添加到User
(注意:未经测试的代码):
def email
contact.email
end
def email= email_addr
contact.mail = email_addr
end