我有一個房東類,它有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