Rails Screencast - полностью застрял на "fields_for" - PullRequest
1 голос
/ 19 марта 2011

Я следую этому простому уроку , и я выполнил все шаги ... но браузер просто не показывает мне ничего, что я поместил в тег fields_for.

<%= form_for :activity, :url => activities_path do |f| %>

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

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

  <div class="field">
    <%= f.label "Foto" %><br />
    <%= f.text_field :photo %>
  </div>
  <div class="field">
    <%= f.label "Foto per la home" %><br />
    <%= f.text_field :photoHome %>
  </div>

    <% for info in @activity.infos %>

    This is rendered<br>

      <% fields_for "activity[info_attributes][]", info do |info_form| %>

    This is not rendered<br>

        <p>
          Titolo: <%= info_form.text_field :title %>
        </p>
        <p>
          Descrizione: <%= info_form.text_field :description %>
        </p>
      <% end %>
    <% end %>
    <p><%= submit_tag "Create activity" %></p>

<% end %>

Результат кода выше:

enter image description here

Что мне не хватает?

1 Ответ

8 голосов
/ 19 марта 2011

Rails иногда (ну хорошо, часто) немного запутывает, когда помощники хотят <% против того, что помощники хотят <%=. Попробуйте

<%= fields_for "activity[info_attributes][]", info do |info_form| %>

Учебник, которому вы следуете, не подходит, но это с 2007 года, а в Rails 3 это было изменено. Текущая документация по fields_for здесь .

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