【发布时间】:2015-10-20 11:15:50
【问题描述】:
我是 Rails 新手,我正在创建一个简单的应用程序,它的客户端带有 addersses。在得到栈溢出社区的一些建议和意见后,我decided to save addresses as a seperate model
我现在正尝试在我的应用程序中实现此功能,但在从“新客户”表单中获取正确保存地址时遇到问题。到目前为止,这是我的代码:
class Address < ActiveRecord::Base
belongs_to :client
end
class Client < ActiveRecord::Base
has_one :address
before_create :build_address, unless: Proc.new { |client| client.address }
end
<%= form_for(@client) do |f| %>
<% if @client.errors.any? %>
<div id="error_explanation">
<h2><%= pluralize(@client.errors.count, "error") %> prohibited this client from being saved:</h2>
<ul>
<% @client.errors.full_messages.each do |message| %>
<li><%= message %></li>
<% end %>
</ul>
</div>
<% end %>
<div class="field">
<%= f.label :name %><br>
<%= f.text_field :name %>
</div>
<div class="field">
<%= f.label :phone_number %><br>
<%= f.text_field :phone_number %>
</div>
<%= f.fields_for :address do |a| %>
<div class="field">
<%= a.label :house_number %><br>
<%= a.number_field :house_number %>
</div>
<div class="field">
<%= a.label :house_name %><br>
<%= a.text_field :house_name %>
</div>
<div class="field">
<%= a.label :post_code %><br>
<%= a.text_field :post_code %>
</div>
<% end %>
<div class="actions">
<%= f.submit %>
</div>
<% end %>
这样,客户端创建成功,但地址记录创建为空字段。没有错误。
任何帮助将不胜感激。
谢谢
【问题讨论】:
-
你有
accepts_nested_attributes_for :address吗?params.require(:client)你有什么?
标签: ruby-on-rails ruby model associations