update text_field tag rails how form for ruby-on-rails nested-forms fields-for

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