I''m having trouble with a model: class Job < ActiveRecord::Base belongs_to :company belongs_to :city belongs_to :region belongs_to :country belongs_to :department belongs_to :user has_many :comments accepts_nested_attributes_for :city, :allow_destroy => :false accepts_nested_attributes_for :region, :allow_destroy => :false accepts_nested_attributes_for :country, :allow_destroy => :false accepts_nested_attributes_for :company, :allow_destroy => :false accepts_nested_attributes_for :department, :allow_destroy => :false end I''m trying to create a form with nested attributes but whenever I call @job.city.build it complains that @job.city is nil. You have a nil object when you didn''t expect it! The error occurred while evaluating nil.build Here is the associated controller code: def new @job = Job.new @job.city.build @job.region.build @job.counrty.build @job.department.build @job.company.build end It would appear that I am wrong in my assumption that the relation in the model allows me to treat city as an attribute. How would I go about making this work?
On Aug 22, 6:22 pm, Glen <damnbig...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:> I''m having trouble with a model: > def new > @job = Job.new > > @job.city.build > @job.region.build > @job.counrty.build > @job.department.build > @job.company.buildThe magically created methods are @job.build_city etc. Fred> end > > It would appear that I am wrong in my assumption that the relation in > the model allows me to treat city as an attribute. How would I go > about making this work?
On Aug 22, 3:20 pm, Frederick Cheung <frederick.che...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:> On Aug 22, 6:22 pm, Glen <damnbig...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote: > > > I''m having trouble with a model: > > def new > > @job = Job.new > > > @job.city.build > > @job.region.build > > @job.counrty.build > > @job.department.build > > @job.company.build > > The magically created methods are @job.build_city etc. >Thank you much, that did the trick.
Fred''s got the answer on this one, but holy database normalization Batman! A ''country'' string field is enough for most people... --Matt Jones On Aug 22, 1:22 pm, Glen <damnbig...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:> I''m having trouble with a model: > > class Job < ActiveRecord::Base > belongs_to :company > belongs_to :city > belongs_to :region > belongs_to :country > belongs_to :department > belongs_to :user > > has_many :comments > > accepts_nested_attributes_for :city, :allow_destroy => :false > accepts_nested_attributes_for :region, :allow_destroy => :false > accepts_nested_attributes_for :country, :allow_destroy => :false > accepts_nested_attributes_for :company, :allow_destroy => :false > accepts_nested_attributes_for :department, :allow_destroy => :false > end > > I''m trying to create a form with nested attributes but whenever I call > @job.city.build it complains that @job.city is nil. > > You have a nil object when you didn''t expect it! > The error occurred while evaluating nil.build > > Here is the associated controller code: > > def new > @job = Job.new > > @job.city.build > @job.region.build > @job.counrty.build > @job.department.build > @job.company.build > end > > It would appear that I am wrong in my assumption that the relation in > the model allows me to treat city as an attribute. How would I go > about making this work?