0

我正在努力獲取使用belongs_to關聯呈現的嵌套表格。Rails 3:使用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 

地址不必Store模式的任何引用(它是獨立的)

控制器

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> 
....... 

這使得存儲名稱。但地址方面沒有。請幫忙!

+0

你有沒有得到這個工作完成?你有類似的設置,但是,當我嘗試提交表單時,它不會創建store_address。 – Altonymous

回答

3

我想你錯過了一個=<%f.fields_for ...。它應該是<%= f.fields_for ...

這種情況在過去經常發生,錯過了這一件事,然後想知道爲什麼嵌套窗體不能渲染。

+0

awww ...我知道它一定是愚蠢的..不認爲這是愚蠢的,雖然;) – thanikkal

+0

其簡單愚蠢,但很容易得到錯誤。當我經歷同樣的情況時,我放棄了我的計劃好幾天。 :) – rookieRailer