Fields_for для вложенных моделей Rails 3.2.2 - PullRequest
2 голосов
/ 26 марта 2012

У меня есть несколько вложенных моделей в моем приложении Rails. У меня есть статья, у меня есть свойства.

class Article < ActiveRecord::Base
  has_many :properties, :dependent => :destroy
  accepts_nested_attributes_for :properties
end

class Property < ActiveRecord::Base
  belongs_to :article
end

А теперь я хочу отредактировать это в моем представлении, чтобы я редактировал контроллер

  # GET /articles/new
  # GET /articles/new.json
  def new
    @article = Article.new
    3.times { @article.properties.build }

    respond_to do |format|
      format.html # new.html.erb
      format.json { render json: @article }
    end
  end

А также отредактировал View и _format.html.erb

 <%= form_for(@article) do |f| %>
  <% if @article.errors.any? %>
    <div id="error_explanation">
      <h2><%= pluralize(@article.errors.count, "error") %> prohibited this article from being saved:</h2>

      <ul>
      <% @article.errors.full_messages.each do |msg| %>
        <li><%= msg %></li>
      <% end %>
      </ul>
    </div>
  <% end %>

  <div class="field">
    <%= f.label :name %><br />
    <%= f.text_field :name %>
  </div>
  <div class="field">
    <%= f.label :description %><br />
    <%= f.text_area :description %>
  </div>
  <% f.fields_for :properties do |prop| %>
            <div class="field">
            <%= prop.label :name %><br />
            <%= prop.text_field :name %>
         </div>
  <% end %>
  <div class="actions">
    <%= f.submit %>
  </div>
<% end %>

Но нет никакого способа появиться. Если я хочу создать новую модель, я не вижу никаких полей ввода для свойств.

Что я сделал не так?

1 Ответ

4 голосов
/ 26 марта 2012

Вам не хватает = в вашей fields_for строке. То есть должно быть:

<%= f.fields_for :properties do |prop| %>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...