ruby-on-rails - text_field - rails update nested attributes
campos_para no renderizar-rieles 3 (2)
En los carriles 3, debe usar <%=
lugar de <%
para form_for
y fields_for
. A ver si eso ayuda.
Finalmente, me mudé a Rails 3 para un nuevo proyecto y ya me encontré con un problema de novato.
Tratando de hacer una forma anidada simple.
2 modelos: lista y tareas
Modelo de lista
class List < ActiveRecord::Base
has_many :tasks, :dependent=>:destroy
accepts_nested_attributes_for :tasks, :reject_if => lambda { |a| a[:name].blank? }
end
Modelo de tarea
class Task < ActiveRecord::Base
belongs_to :list
end
Controlador de lista
def new
@list = List.new
3.times{ @list.tasks.build }
end
lists / 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 -%>
Al usar debug @list puedo ver las 3 tareas que creé en mi controlador, pero fields_for no se procesará.
¿Algunas ideas?
En tu lista el controlador en acción nuevo tienes que agregar
def new
@list = List.new
3.times{
@tasks = @list.tasks.build
}
end