Ruby on rails: вложенная форма атрибута не отображается - PullRequest
0 голосов
/ 20 декабря 2011

Я работаю над Rails 3.1.1.rc3 и у меня есть 2 класса, как показано ниже.

class Customer < ActiveRecord::Base
  has_many :orders, :dependent => :destroy
  accepts_nested_attributes_for :orders
end

class Order < ActiveRecord::Base
  belongs_to :customer
end

В моем виде:

<%= form_for(@customer) do |f| %>
  <div class="field">
    <%= f.label :name %><br />
    <%= f.text_field :name,:class=>'textbox' %>
  </div>

  <%= f.fields_for :orders do |order_form| %>   
    <div class="field">
       <%= order_form.label :number %><br />
       <%= order_form.text_field :number, :class=>'textbox' %>
   </div>  
  <%end%>

<%end%>

Когда он рендерится, отображается первая часть формы (для клиента), а вторая часть (для заказа) - нет. Любые указатели приветствуются. Спасибо.

Ответы [ 2 ]

4 голосов
/ 20 декабря 2011

Две вещи.Первый fields_for в основном выполняет итерации по customer.orders, поэтому, если нет заказов, вы не получите никакого вывода.Если вы просто хотите, чтобы некоторые пустые поля для пользователей вводили детали заказа, вы обычно вставляете

@customer.orders.build

в свой контроллер.Во-вторых, fields_for очень похоже на form_for, вам нужно использовать <% = для него тоже </p>

1 голос
/ 20 декабря 2011

добавить

<%= f.fields_for :orders do |order_form| %> 

вместо

<% f.fields_for :orders do |order_form| %> 

Редактировать: посмотрите на как определено fields_for (есть примеры)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...