Направляющие рельсы - Застрял в форме мульти модели - PullRequest
2 голосов
/ 12 января 2012

Я собираюсь поработать с Руководствами по Rails (http://guides.rubyonrails.org/getting_started.html),and застрял в пункте 11 «Построение мультимодальной формы».

В этой части упражнения объясняется включение полей формы для одной модели внутри формы.для другого ...

Моя проблема в том, что поля формы для второй модели просто не отображаются ..

Код точно такой же, как в упражнении (я даже отчаялся и скопировали вставил код прямо из примера)

Мой код опубликован ниже .. Я провел часы, сравнивая это с кодом в руководстве, и он точно такой же ... может кто-нибудь указать мне на то, что можетне так?

Заранее большое спасибо.

Вот мой код для включения частичного

<%= render :partial => 'tags/form',
             :locals => {:form => post_form} %>

Вот содержимое моего частичного

<p>Above - THIS IS DISPLAYING</p>

<%= form.fields_for :tags do |tag_form| %>

  <p>Inside - THIS IS NOT DISPLAYING</p>

  <div class="field">
    <%= tag_form.label :name, 'Tag:' %>
    <%= tag_form.text_field :name %>
  </div>
  <% unless tag_form.object.nil? || tag_form.object.new_record? %>
    <div class="field">
      <%= tag_form.label :_destroy, 'Remove:' %>
      <%= tag_form.check_box :_destroy %>
    </div>
  <% end %>
<% end %>

Вот моя модель для Post, которая настроена на прием вложенных атрибутов для тегов

class Post < ActiveRecord::Base
  validates :name, :presence => true
  validates :title, :presence => true,
                    :length => { :minimum => 5 }

  has_many :comments, :dependent => :destroy
  has_many :tags

  accepts_nested_attributes_for :tags, :allow_destroy => :true,
    :reject_if => proc { |attrs| attrs.all? { |k, v| v.blank? } }

end

1 Ответ

7 голосов
/ 12 января 2012

Вы это сделали?

Мы также добавляем @post.tags.build вверху этой формы.Это сделано для того, чтобы убедиться, что новый тег готов к заполнению его имени пользователем.Если вы не создадите новый тег, то форма не появится, так как новый объект Tag не готов для создания.

<% @post.tags.build %>
<%= form_for(@post) do |post_form| %>
…

Если это не сработает, попробуйте добавить @post.tags.buildв метод new вашего PostController и посмотрите, принесет ли это вам поля!

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