Ruby on rails 3 如何使用嵌套表单将相同的数据插入到两个表中
我正在使用嵌套表单将数据插入两个表(用户和地址)。我希望在这两个表中都有我的用户电子邮件id,但用户应输入一次电子邮件id。这是我目前的看法Ruby on rails 3 如何使用嵌套表单将相同的数据插入到两个表中,ruby-on-rails-3,Ruby On Rails 3,我正在使用嵌套表单将数据插入两个表(用户和地址)。我希望在这两个表中都有我的用户电子邮件id,但用户应输入一次电子邮件id。这是我目前的看法 <%= form_for @user do |f| %> <%= f.text_field(:name, :size => 20) %> <%= f.text_field(:email, :size => 20) %> <%= f.fields_for :address do |r|
<%= form_for @user do |f| %>
<%= f.text_field(:name, :size => 20) %>
<%= f.text_field(:email, :size => 20) %>
<%= f.fields_for :address do |r| %>
<%= r.text_field(:street, :size => 20) %>
<%= r.text_field(:city, :size => 20) %>
<% end %>
<%= f.submit "Create" %>
<% end %>
使用时:
@user = User.new(params[:user][:address].merge!(:email => params[:user][:email]))
我收到错误“未定义的方法合并”
用户模型(仅与问题相关的部分)
在地址模型中,我得到了语法错误。所以我试着不用它。用户id street,city获得了正确的值,但email字段没有得到任何信息。您可以从控制器将其添加到params哈希中:
params[:user][:address].merge!(:email => params[:user][:email])
我按照你的建议试过了,但没有成功。我也试过。。。参数[:用户][:地址\属性]。合并!(:email=>params[:user][:email])。。。。“我的地址”表中的“仍然电子邮件”字段未获得任何值。您可以发布控制器和模型以尝试了解发生了什么情况吗?
@user = User.new(params[:user][:address].merge!(:email => params[:user][:email]))
class User < ActiveRecord::Base
attr_accessible: :email, :domain_id, :address_attributes
belongs_to :domain
has_one :address
accepts_nested_attributes_for :address
end
class Address < ActiveRecord::Base
attr_accessible :user_id, :email, :street, :city
end
belongs_to :user
params[:user][:address].merge!(:email => params[:user][:email])