我有一个房东类,它有N个地址。 房东接受地址的嵌套属性 我有一个窗体,用于创建该窗体的房东是创建地址的子窗体。从父创建方法内创建嵌套模型
该地址要求房东标识符有效,因此保存。
当我创建房东时,如何创建地址而不必在房东控制器中的create方法调用中保存房东两次?
landlord_controller.rb#创建
def create
#check if a landlord of the same name already exists and load that instead
@landlord = Landlord.where(:name => params[:landlord][:name], \
:city_id => params[:landlord][:city_id], \
:province_id => params[:landlord][:province_id]).
first_or_create
if @landlord.save
flash[:success] = #"Thank you for submitting a Landlord "
#@landlord.addresses.build ....
#@landlord.save
redirect_to @landlord
else
render :new
end
end
房东/ new.html.erb#形式
<%= form_for @landlord do |f| %>
<%= f.fields_for :address do |address_form| %>
<%= address_form.label :number %>
<%= address_form.text_field :number %>
<%= address_form.label :street %>
<%= address_form.text_field :street %>
<%= address_form.label "#{:unit}#/Apt #" %>
<%= address_form.text_field :unit %>
<%= address_form.label :postal %>
<%= address_form.text_field :postal %>
<% end %>
<% end %>
其实,第二个'@ landlord.save'保存地址。如果你不想这样做,你可以分别保存每个“地址”。 –
在您的经验中哪种方法更具优势? – Derptacos