0

我有员工、联系人和用户。当创建新的联系人或员工时,他们各自的模型会创建一个新用户。这些是关系:

  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 %>

如何将电子邮件放入联系人表单并将其传递给联系人控制器以放入新的用户记录?

谢谢您的帮助!

更新1

我试过这个,但没有奏效:

联系表:

  <%= 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
4

1 回答 1

0

您可以使用text_field_tag辅助方法在视图中创建输入字段,但这听起来像是在滥用模型。如果您的表单代表“联系”模型,为什么不将email属性保留在Contact其中并从中删除呢User?然后,为了方便起见,您可以将以下内容添加到User(注意:未经测试的代码):

def email
    contact.email
end

def email= email_addr
    contact.mail = email_addr
end
于 2013-04-20T15:02:11.237 回答