Rails2/Rails3 nested form, fields_for not displayed

51 views
Skip to first unread message

Nicolas

unread,
Oct 4, 2010, 12:39:55 AM10/4/10
to Ruby on Rails: Talk
Hi all,

I'm having some issues to create a nested form with Rails3, the fields
for creating my "children" object are not displayed in the form of its
parent form.

The code below is working under rails2 and not rails3, after reading
the rails3 release note, they didn't make any changes about nested
attributes. So it should work, or maybe I've missed something...

#model/book.rb
class Book < ActiveRecord::Base
has_one :author
accepts_nested_attributes_for :author
end

#model/author.rb
class Author < ActiveRecord::Base
belongs_to :book
end

#views/books/_form.html.erb
<%= form_for(@book) do |f| %>
...
<div class="field">
<%= f.label :title %><br />
<%= f.text_field :title %>
</div>

<!-- For some reasons this block doesn't show up under rails3
but in rails 2 it's working -->
<% f.fields_for :author do |author_form|%>
<div class="field">
<%= author_form.label :name%>
<%= author_form.text_field :name %>
</div>
<% end %>

<div class="actions">
<%= f.submit %>
</div>
<% end %>

#controllers/books_controller.rb
def new
@book = Book.new
@book.build_author

respond_to do |format|
format.html # new.html.erb
format.xml { render :xml => @book }
end
end

I would appreciate any help, thanks. And I apologize if I made any
english errors.
Nico.

Solrac Caritas

unread,
Oct 4, 2010, 4:38:24 AM10/4/10
to rubyonra...@googlegroups.com
> <!-- For some reasons this block doesn't show up under rails3
> but in rails 2 it's working -->
> <% f.fields_for :author do |author_form|%>
> <div class="field">
> <%= author_form.label :name%>
> <%= author_form.text_field :name %>
> </div>
> <% end %>

replace


<% f.fields_for :author do |author_form|%>

with
<%= f.fields_for :author do |author_form|%>
--
Posted via http://www.ruby-forum.com/.

pepe

unread,
Oct 4, 2010, 9:07:06 AM10/4/10
to Ruby on Rails: Talk
Not used Rails 3 yet, but shouldn't your symbol be plural (:authors)
since you have a one-to-many relationship?

Nicolas

unread,
Oct 4, 2010, 2:06:32 PM10/4/10
to Ruby on Rails: Talk
It's working. thanks a lot! It was a stupid error from me :).

Chris Miller

unread,
Nov 20, 2010, 9:59:55 PM11/20/10
to rubyonra...@googlegroups.com
Nicolas,
Sorry to drag up this old topic, but I'm having the exact same
problem. So what was your error? I assume I'm making the same mistake.

Thanks in advance,
Chris

Shir Ah

unread,
Jan 27, 2011, 6:36:04 AM1/27/11
to rubyonra...@googlegroups.com
Solrac Caritas wrote in post #945648:

> <% f.fields_for :author do |author_form|%>
> with
> <%= f.fields_for :author do |author_form|%>

Thanks you very much
It help me too!

José D.

unread,
Feb 17, 2015, 7:27:29 PM2/17/15
to rubyonra...@googlegroups.com
thank you thank you thank you!!!! I'm starting to play with Ruby (being
a python man myself), and I've been loosing my mind for two days with
this!!!
Reply all
Reply to author
Forward
0 new messages