Re: Design question

pepe
Tue, 18 May 2010 13:44:45 -0000

I have used STI before and although it works I am not that crazy about
it and in this case I don''t think it can be applied because one person
*could* be both a user and a customer.

I like the concept of the abstract Person model, though. I didn''t
think about that one and I think it''s a good idea. Any links to a
sample of how to use abstract classes? I''ve never used them before.

Thanks!

On May 18, 9:26 am, Ar Chron
<li...-fsXkhYbjdPsEEoCn2XhGlw@public.gmane.org>
wrote:
> pepe wrote:
>
> > I have thought about factoring out the name to a separate model:
>
> Most of this decision depends on how you intend to treat your Users and
> Customers. Perhaps you just have people, with a flag attribute on each,
> or people with related models of Customer-specific info and
> User-specific info. Is a User really different from a Person (will you
> track people who aren''t users or customers - if so, then Person
isn''t
> abstract)? But only you know the answers to these questions.
>
> I think of names (first, last, middle, full, nickname, etc) as
> attributes of some model, not a model of its own...
>
> Sounds like you *could* have a base (abstract) class of Person, then do
>
> class Person < ActiveRecord::Base
>   self.abstract_class = true
>   # common methods go here
> end
>
> class User < Person
>   # User table has all the fields it needs
>   # User specific methods go here
>   blah blah blah
>
> end
>
> class Customer < Person
>   # Customer table has all the fields it needs
>   # Customer specific methods go here
>   blah blah blah
> end
>
> if Users and Customers really, really are different entities.
>
> You could also go the STI route...
> --
> Posted viahttp://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-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org
> To unsubscribe from this group, send email to
rubyonrails-talk+unsubscribe@googlegroups.com.
> For more options, visit this group
athttp://groups.google.com/group/rubyonrails-talk?hl=en.