Rails如何使配置文件表单接受用户模型属性?

时间:2012-08-19 03:08:31

标签: ruby-on-rails

我有一个用户配置文件表单,用户在用户数据库中创建用户记录后填写(通过用户模型)。在配置文件表单中以及配置文件字段中,我有一个电子邮件字段,实际上来自users表。这是我的设置:

class Profile < ActiveRecord::Base
  belongs_to :user
  accepts_nested_attributes_for :user
  ...

class User < ActiveRecord::Base
  has_one :profile
  ...

在个人资料表格中:

<%= form_for @profile do |f| %>
  <%= f.fields_for :user do |l| %>
    <%= l.text_field :email, :placeholder => "email address" %>
  <% end %>
  ...

在我的个人资料 - >新方法中,我有这个..

profile.build_user

..现在发生的是在创建配置文件时创建一个全新的用户记录。我想要的是,在创建配置文件时,应该在该用户的users表中更新电子邮件地址。有人可以在我的代码中发现问题吗?我怀疑这与我发布的最后一行代码有关,但不确定。

感谢。

1 个答案:

答案 0 :(得分:0)

查看:accepts_nested_attributes_for方法,我想这可能就是你要找的东西

http://api.rubyonrails.org/classes/ActiveRecord/NestedAttributes/ClassMethods.html#method-i-accepts_nested_attributes_for

在用户模型中,您可以accepts_nested_attributes_for :user_profile