fields_for не рендеринг - Rails 3
-
08-10-2019 - |
Вопрос
Наконец-то переехал на рельсы 3 для нового проекта и уже вступил в проблему на новинку.
Пытаясь сделать простую вложенную форму.
2 модели: список и задачи
Модель списка
class List < ActiveRecord::Base
has_many :tasks, :dependent=>:destroy
accepts_nested_attributes_for :tasks, :reject_if => lambda { |a| a[:name].blank? }
end
Модель задачи
class Task < ActiveRecord::Base
belongs_to :list
end
Список контроллер
def new
@list = List.new
3.times{ @list.tasks.build }
end
Списки / new.html.erb.
<% form_for :list, :url=>{:action=>"create"} do |f| %>
<%= f.text_field :name, :class=>'big' %>
<%= f.label :name, "ex: Today's Todos, Christmas List" %>
<% f.fields_for :tasks do |builder| %>
<p>
<%= builder.label :name, "Task" %>
<%= builder.text_field :name %>
<%= builder.check_box :_destroy %>
</p>
<% end %>
<p><%= submit_tag "Create List", :id => "submit", :name => "submit", :class => "form_submit", :disabled => false, :disable_with => "Please wait..." %></p>
<% end -%>
С использованием Отладка @List Я вижу 3 задачи, которые я создал в моем контроллере, но он fields_for не будет рендерировать.
Есть идеи?
Решение
В рельсах 3, вы должны использовать <%=
вместо <%
для form_for
а также fields_for
Отказ Посмотрите, если это поможет.
Другие советы
В вашем списке контроллер в действии новое вы должны добавить
def new
@list = List.new
3.times{
@tasks = @list.tasks.build
}
end
Не связан с StackOverflow