Rails 3: вложенная форма, отображаемая с принадлежностью - PullRequest
0 голосов
/ 09 августа 2011

Я изо всех сил пытаюсь получить вложенную форму с ассоциацией принадлежащей_

Я ожидал, что адресные поля в "_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

View

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

Отображает название магазина. но ничего на адресной стороне. пожалуйста помогите!

1 Ответ

3 голосов
/ 09 августа 2011

Я думаю, вы пропустили = на <% f.fields_for ... </strong>. Это должно быть <% = f.fields_for ... </strong>.

Это случалось со мной так часто в прошлом, когда я упускал одну вещь, а затем удивлялся, почему вложенная форма не будет отображаться.

...