我有一个简单模型的rails应用程序:
客户has_one地址
地址belongs_to客户
new.html.erb
<%=f .fields_for :address do |a| %>
<%=a .label :street %>
<br>
<%=a .text_field :street %>
<br>
<%=a .label :number %>
<br>
<%=a .text_field :number %>
<br>
<%=a .label :zipcode %>
<br>
<%=a .text_field :zipcode %>
<br>
<%=a .label :city %>
<br>
<%=a .text_field :city %>
<br>
<%=a .label :country %>
<br>
<%=a .text_field :country %>
<br>
<% end %>
&#13;
customer_controller.rb
def create
@customer = Customer.new(customer_params)
@customer.save
redirect_to @customer
end
private
def customer_params
params.require(:customer).permit(:ctype, :name, :dateOfBirth, :image, :custom1, :custom2, :custom3, :email, :phone, :mobilphone, :website, address_attributes:[:street, :number, :zipcode, :city, :country])
end
&#13;
如果我使用地址创建新客户,我的地址将不会保存:(
你能帮助我吗?答案 0 :(得分:0)
您缺少客户模型中的accepts_nested_attributes_for :address
。
看起来应该是这样,告诉我们您的代码实际上正在更新其他模型。
class Customer < ActiveRecord::Base
has_one :address
accepts_nested_attributes_for :address
end
希望这有帮助。