[英]Rails 3: nested form rendered with belongs_to association
我正在努力使嵌套表格与belongs_to关联呈现。
我原以为“ _form.html.erb”(如下)中的地址字段会正确显示,但显然是不正确的,我只是无法解决这个问题!
Rails版本:3.09
这是代码。
模型:
Store.rb
class Store < ActiveRecord::Base
has_and_belongs_to_many :products
belongs_to :store_address, :foreign_key => "address_id", :class_name => "Address"
......
end
地址没有对商店模型的任何引用(是独立的)
控制者
stores_controller.rb
def new
@store = Store.new
@store.build_store_address
respond_with(@store)
end
视图
new.html.erb
<% form_for(@store, :url => collection_url) do |f| %>
<%= render :partial => "form", :locals => { :f => f } %>
<p class="form-buttons">
<%= button t('continue') %>
</p>
<% end %>
_form.html.erb
<%=t(:store_name)%> : <%= text_field :store, :name %>
<%=t(:store_admin_email)%> : <%= text_field :store, :admin_email %>
<fieldset>
<legend><label><%=t(:address)%></label></legend>
<% f.fields_for :store_address do |address_form| %>
<table>
<tbody><tr>
<td width="200"><label><%=t(:line_1)%></label></td><td>
<%= address_form.text_area :address1, :rows => 2%>
</td>
</tr>
<tr>
<td><label><%=t(:line_2)%></label></td><td>
<%= address_form.text_area :address2, :rows => 2 %>
</td>
</tr>
<tr>
<td><label><%=t(:city)%></label></td><td>
<%= address_form.text_field :city %>
</td>
</tr>
.......
这将呈现商店名称。 但地址端没有任何内容。 请帮忙!
我认为您在<%f.fields_for ...错过了= 。 它应该是<%= f.fields_for...。
过去我经常发生这种情况,错过了这一件事,然后想知道为什么嵌套表单无法呈现。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.