Why does Child even have the family_id attribute? Can't you get the child's family through it's person (parent)? Unless the child can belong to a different family than the person, this is an unnecessary association.
Anyway, that doesn't really answer the question. accepts_nested_atrributes_for and attr_protected on the foreign keys doesn't work together. My question is: Why are you putting attr_protected on the foreign_keys? To prevent users from being able to move a child to a different parent when editing its attributes? If so, I recommend you use attr_readonly instead. On May 19, 5:09 am, brianp <[email protected]> wrote: > Hey, > Just going over some of the accepts of accepts_nested_attributes_for > & attr_accessible. > > I found with the form and models I've been working on it would be > great if I could use accepts_nested_attribtues but I want to propose > my case where I just can't make it work. And for secretory reasons > wonder where it would ever work for that matter. > > So below. We have a household setup. We would have a Family object > with an id. Now if we were to create one person for the family we > could do it easily with: > > @family = Family.new > @family.persons.new(params[person]) > > But what if we wanted to add a person and a child at the same time via > nested parameters? We won't be able to. As the childs family_id field > is protected we won't be able to mass assign with the nested > parameters. I can't think of a time I would ever be creating a > completely "open" object that wouldn't have a single protected > parameter. So when do the nested_attributes come in handy besides when > your model is un-secure? > > (This is just me learning there very well might be perfect places for > this, I am just wondering where) > > class Person < ActiveRecord::Base > validates_presence_of :name, :family_id > > has_many :children > belongs_to :family > > accepts_nested_attributes_for :children > > attr_accessible :name > end > > class Child < ActiveRecord::Base > belongs_to :person > belongs_to :family > > validates_presence_of :name, :family_id > > attr_accessible :name > end > > class Family < ActiveRecord::Base > has_many :persons > has_many :children (childs?) > > attr_protected :id > end > > cheers, > brianp > > -- > You received this message because you are subscribed to the Google Groups > "Ruby on Rails: Talk" group. > To post to this group, send email to [email protected]. > To unsubscribe from this group, send email to > [email protected]. > For more options, visit this group > athttp://groups.google.com/group/rubyonrails-talk?hl=en. -- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.

