Has_one accepts_nested_attributes_for fields_for NOT WORKING HELP

MODEL
class User < ActiveRecord::Base
has_one :address, :dependent => :destroy
accepts_nested_attributes_for :address
end

CONTROL
def new
@user = User.new
@user.build_address # Adicionei

VIEW partial _form

<% f.fields_for :address do |b| %> # Adicionei
<%= b.text_field :city_manual %> # Adicionei
<% end %> # Adicionei

So this is not working… when browser to users/new it do not show the
field as should…
Change this to a has_many all works.
Using has_one this make me crazy and not work… anyone help?

On Nov 28, 2010, at 11:29 AM, Humberto R. wrote:

@user.build_address # Adicionei
field as should…
Change this to a has_many all works.
Using has_one this make me crazy and not work… anyone help?

Sorry, I don’t have an answer for you on this. But I’m curious – why
are you putting the address in a separate model if you are using
has_one? It seems like an over-normailization to me. Why not just put
those attributes in the user and be done with it?

Walter

Model address has 8 attributes… i did it to minimize user table
size.

About the problem… just try in your machine you will se it not
workin as should do.

in your

def new

try @user.address = Address.new

Just tested. Everything works fine.

Make sure:

  1. you didn’t forget to put “belongs_to :user” association in your
    Address model
  2. use “<%=” for your “f.fields_for :address” in the _form view file.

Hope this helps.

The result is the same… the field do not show in view when browsing
to /users/new

Section 7.4.2 of Ruby on Rails 3.0 Release Notes — Ruby on Rails Guides