Hmm.. thats a tricky one. If we added *update_only params to attributes=, the only way to call would be: @user.send(:attributes=, params [:user], :password, :password_confirmation)
Really seems like there should be a helper method that focuses on applying an attribute hash to the model. http://gist.github.com/33704 I've refactored resource.rb to allow a method called set_attributes (hash, *update_only). update_attributes now reuses it, and it also fixes a vulnerability on update_attributes where non public methods get called (fixed in the gist by reusing attributes= to do the work for us). Let me know if anything looks way off base. I'll add some specs and submit it back to DataMapper if it seems like a positive API change. On Dec 8, 3:37 am, Jon Hancock <[EMAIL PROTECTED]> wrote: > nice, but only useful in situation when I want to do a save along with > the assign. > > I see that def attributes=(values_hash) does not allow me to limit > the assign. > > but def update_attributes(hash, *update_only), the method defined > right below it in resource.rb does. Seem like attributes= is in need > of a slight upgrade? > > thanks, Jon > > On Dec 8, 6:14 am, "Dan Kubb (dkubb)" <[EMAIL PROTECTED]> wrote: > > > Here's another option: > > > def update(id, user) > > @user = User.get(id) > > if @user.update_attributes > > (user, :display_name, :password, :password_confirmation) > > ... > > > Dan > > (dkubb) --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "merb" 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/merb?hl=en -~----------~----~----~----~------~----~------~--~---
