Hi, I have created an application in which a customer model has many locations. Customers are then assigned to an order, and one of their locations is also assigned to the order. My issue comes if a locations is removed from the customer, that was assigned to an order. I have added an active field to the locations table, and when I "delete" the location, it sets it to false. My question is how to do the find statements correctly. Should I be overwriting the find method within the locations model to only return active locations? Then if I do that, and the order.location method is called, how do I get it to return the old location that is not active. Am I going about this the right way or is there a more efficient way to handle it? --~--~---------~--~----~------------~-------~--~----~ 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 rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
lundie wrote:> Hi, > > I have created an application in which a customer model has many > locations. Customers are then assigned to an order, and one of their > locations is also assigned to the order. > > My issue comes if a locations is removed from the customer, that was > assigned to an order. I have added an active field to the locations > table, and when I "delete" the location, it sets it to false. > > My question is how to do the find statements correctly. Should I be > overwriting the find method within the locations model to only return > active locations? Then if I do that, and the order.location method is > called, how do I get it to return the old location that is not active. > > Am I going about this the right way or is there a more efficient way > to handle it?I don''t see why you need to override anything, if you only are interested in active locations then you can always add that requirement to your find conditions. In this way, you will not impact your Order processing at all as it can still contain "deleted" addresses. hth ilan -- Posted via http://www.ruby-forum.com/. --~--~---------~--~----~------------~-------~--~----~ 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 rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
On 7/30/07, lundie <rlundie-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:> > Hi, > > I have created an application in which a customer model has many > locations. Customers are then assigned to an order, and one of their > locations is also assigned to the order. > > My issue comes if a locations is removed from the customer, that was > assigned to an order. I have added an active field to the locations > table, and when I "delete" the location, it sets it to false. > > My question is how to do the find statements correctly. Should I be > overwriting the find method within the locations model to only return > active locations? Then if I do that, and the order.location method is > called, how do I get it to return the old location that is not active. > > Am I going about this the right way or is there a more efficient way > to handle it?I have an old acts_as_paranoid plugin that does this. It overrides #destroy and tries to override #find so that the use of the deleted_at field is transparent. Problem is, it tends to break down in certain edge cases. I recommend you keep it a little more explicit and use the scope_out plugin. http://svn.techno-weenie.net/projects/plugins/acts_as_paranoid/ http://code.google.com/p/scope-out-rails/ -- Rick Olson http://lighthouseapp.com http://weblog.techno-weenie.net http://mephistoblog.com --~--~---------~--~----~------------~-------~--~----~ 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 rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
Thanks! scope-out looks like it will do the trick. On Jul 30, 5:56 pm, "Rick Olson" <technowee...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:> On 7/30/07, lundie <rlun...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote: > > > > > > > Hi, > > > I have created an application in which a customer model has many > > locations. Customers are then assigned to an order, and one of their > > locations is also assigned to the order. > > > My issue comes if a locations is removed from the customer, that was > > assigned to an order. I have added an active field to the locations > > table, and when I "delete" the location, it sets it to false. > > > My question is how to do the find statements correctly. Should I be > > overwriting the find method within the locations model to only return > > active locations? Then if I do that, and the order.location method is > > called, how do I get it to return the old location that is not active. > > > Am I going about this the right way or is there a more efficient way > > to handle it? > > I have an old acts_as_paranoid plugin that does this. It overrides > #destroy and tries to override #find so that the use of the deleted_at > field is transparent. Problem is, it tends to break down in certain > edge cases. I recommend you keep it a little more explicit and use > the scope_out plugin. > > http://svn.techno-weenie.net/projects/plugins/acts_as_paranoid/http://code.google.com/p/scope-out-rails/ > > -- > Rick Olsonhttp://lighthouseapp.comhttp://weblog.techno-weenie.nethttp://mephistoblog.com--~--~---------~--~----~------------~-------~--~----~ 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 rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---