Sorry, didn't catch that you were using hidden fields. The ajax
suggestion was geared more towards a form where child elements that
are input by the user.  The first link I sent also references a
railscast on complex forms. Might want to check that in addition to
James' suggestion. But not an exact match for what you are doing
either.

Peter


On May 18, 4:22 pm, Glenn Little <[email protected]> wrote:
> No, we're not at rails 2.3, so no nested models.  And I was kind of hoping
> to do all the validation/saving in one go rather and bit-by-bit doing it
> with Ajax, unless I misunderstand how Ajax can help.  A generic-ized
> version of the controller code is here:
>
> http://pastie.org/482217
>
> Thanks...
>
>         -glenn
>
> James Miller wrote:
> > Hey Glenn,
>
> > Can you paste your model/controller code into a gist or pastie?  Are you
> > using nested attributes with Rails 2.3
> > (http://guides.rubyonrails.org/2_3_release_notes.html#nested-attributes)
> > or doing it manually?
>
> > James
>
> > On Mon, May 18, 2009 at 3:45 PM, Glenn Little <[email protected]
> > <mailto:[email protected]>> wrote:
>
> >     (Okay, yeah, that subject line is bad taken out of context!)
>
> >     I'm in a form-handler action where I have a parent record and a list of
> >     associated child records via a has_many association.
>
> >     I first walk through form params and look for matching child records
> >     in the database (via a hidden child_id form param) and if the record
> >     exists, I update the data, otherwise I create a new one via
> >     parent.build()
> >     and fill it in.  So now parent.children may have a mix of objects, some
> >     in the db and some not yet.
>
> >     Then I update various parent values from params.
>
> >     Then I walk through the parent.children records and do a child.save
> >     or child.destroy (depending on the new values and depending on
> >     various business
> >     rules).  Some of the destroy calls will be on child objects that
> >     have just been
> >     created and never put in the database (build() does not do an
> >     implicit save).  Some
> >     will be called on records that were in fact in the database.
>
> >     All good so far, but now I want to wave the updated parent record.
> >     The problem is that when I do the parent.save, I get a
> >     "can't modify frozen hash" error.
>
> >     I believe that's because the objects corresponding to any child records
> >     that were destroyed have been frozen.  But I'm not sure why the
> >     parent.save
> >     is trying to modify those objects?
>
> >     Given these issues, I'm starting to wonder if my whole paradigm is
> >     making
> >     my life more difficult than it needs to be.
>
> >     Any ideas on how to get around the frozen hash issue, or alternatively,
> >     the "right" way to do what I'm trying to do?
>
> >     Thanks much in advance...
>
> >            -glenn
--~--~---------~--~----~------------~-------~--~----~
SD Ruby mailing list
[email protected]
http://groups.google.com/group/sdruby
-~----------~----~----~----~------~----~------~--~---

Reply via email to