繁体   English   中英

Rails 3:使用belongs_to关联呈现的嵌套表单

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM