This is quite a bone-saw solution, but I was able to get this working
as expected with this change:

http://github.com/collin/dm-accepts_nested_attributes/commit/923baa9c93d8d053e45e2fddce6dc02fb77df8a7

On Mar 17, 5:28 am, George <[email protected]> wrote:
> Thx for the info snusnu!
>
> On Mar 16, 10:54 pm, Martin Gamsjaeger <[email protected]> wrote:
>
> > George,
>
> > I need to revisit dana (dm-accepts_nested_attributes) soon anyway,
> > because I want to make it so that it *just works* with rails (I'm in
> > the process of switching a larger app to rails3). I gotta admit that I
> > haven't tried to run the specs in a while. In the meantime, I
> > encourage you to dive into the code and see what's going on and where.
> > It's really not complicated imho, and it could provide insight into
> > why it's behaving the way it does.
>
> > Sorry I got no more specific advice atm, but I can promise that I will
> > do what needs to be done to have it compatible/usable with latest dm
> > codes, soon.
>
> > cheers
> > snusnu
>
> > On Tue, Mar 16, 2010 at 23:17, George <[email protected]> 
> > wrote:
> > > BTW As snusnu suggested I also tried calling @trip.attributes(trip)
> > > followed by @trip.save (in the controller's create action), but the
> > > call to attributes() triggered the same old dirty resource error as
> > > the update method.
>
> > > There is no code that modifies the object before calling save or
> > > update. It just receives fields submitted from a form.
>
> > > Is there a correct way to use the nested_attributes plugin? If DM is
> > > *meant* to raise the dirty resource error then how do you work around
> > > it or fix it in order to make the plugin usable?
>
> > > Many thanks
> > > George
>
> > > On Mar 15, 12:04 pm, George <[email protected]> wrote:
> > >> Thanks snusnu.
>
> > >> Interestingly, nothing is modifying the attributes before save or
> > >> update.
>
> > >> When the submitted form contains associated fields such as
> > >> trip[trip_clients_attributes][0][is_invoicable] then we get the dirty
> > >> resource error.
>
> > >> Here's an example of submitted params:
>
> > >> merb : worker (port 81) ~ Params: {"_method"=>"put",
> > >> "trip"=>{"version_of_trip_id"=>"94154", "name"=>"A lovely new trip2",
> > >> "start_date"=>"03/10/2010", "user_id"=>"99", "adults"=>"1",
> > >> "end_date"=>"03/10/2010", "company_id"=>"1", "children"=>"0",
> > >> "type_id"=>"1", "infants"=>"0",
> > >> "trip_clients_attributes"=>{"0"=>{"id"=>"54198", "is_single"=>"0",
> > >> "is_primary"=>"1", "is_invoicable"=>"1"}, "1"=>{"id"=>"54215",
> > >> "is_single"=>"1", "is_primary"=>"0", "is_invoicable"=>"1"}}},
> > >> "client_id"=>"2138471587", "group_id"=>"4", "submit"=>"Save changes",
> > >> "controller"=>"trips", "action"=>"update", "id"=>"94154",
> > >> "format"=>nil}
>
> > >> Controller action:
>
> > >>   def update(id, trip)
> > >>     @trip = Trip.get(id)
> > >>     raise NotFound unless @trip
> > >>     if @trip.update(trip)
> > >>   ...
>
> > >> On Mar 13, 1:21 am, Martin Gamsjaeger <[email protected]> wrote:
>
> > >> > George,
>
> > >> > Calling #update on a dirty resource indeed raises an error and that is
> > >> > the expected dm behavior (it's got nothing to do with my plugin). If
> > >> > you find yourself updating the attributes of a resource in different
> > >> > places before persisting it, you should use #save instead of #update.
> > >> > This is probably confusing to some people, because #update only
> > >> > started to raise that error with recent versions of dm. I'm not sure
> > >> > if it was introduced in 0.10.1 or 0.10.2, but iirc, it wasn't present
> > >> > in 0.10.0 and definitely not in 0.9.x.
>
> > >> > cheers
> > >> > snusnu
>
> > >> > On Fri, Mar 12, 2010 at 16:43, George 
> > >> > <[email protected]> wrote:
> > >> > > Am using snusnu's excellent "dm-accepts_nested_attributes" plugin but
> > >> > > getting an error when submitting a form to update a "Trip" object:
>
> > >> > >  "Update Conflict Error 500 TripClient#update cannot be called on a
> > >> > > dirty resource"
>
> > >> > > trips are related to clients through trip_clients
> > >> > > and the Trip model accepts_nested_attributes_for :trip_clients
> > >> > > (to allow a couple of extra fields to be set on each association, 
> > >> > > such
> > >> > > as 'is_invoicable')
>
> > >> > > It saves fine if I only save changes to fields in trip_clients, but
> > >> > > the error crops up if I also submit changes to the trip object at the
> > >> > > same time.
>
> > >> > > Any ideas why?
>
> > >> > > Many thanks,
> > >> > > George
>
> > >> > > --
> > >> > > You received this message because you are subscribed to the Google 
> > >> > > Groups "DataMapper" 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/datamapper?hl=en.
>
> > > --
> > > You received this message because you are subscribed to the Google Groups 
> > > "DataMapper" 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/datamapper?hl=en.

-- 
You received this message because you are subscribed to the Google Groups 
"DataMapper" 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/datamapper?hl=en.

Reply via email to