Hi. I am currently developing a small course system for student and teachers. The system is divided in sections and sections have many messages, comments, documents and schedules. Pretty easy to set up using ROR, just add some belongs_to and has_many relations. But everything becomes much more complicated when the section items (message, comment and so on...) all has comments. And they can also be a favorite to a users favorite list and much more. Basically all the items has some shared generic stuff that I just don''t want to copy around. Let''s check my rest routes so everyone understands better: map.resources :sections do |sections| sections.resources :messages sections.resources :documents sections.resources :schedules end map.resources :items do |item| item.resources :comments item.resources :favorites end I would basically want to have a generic resource (Item) that takes care of comments, favorites and so on. And that is what my question is all about. Is it a good way to inherit from a base class called Items using STI? Or could I solve this problem some other way? If I don''t have a base class I would have to nest the comment resources to each of the items and that''s not a good solution either.
Hello, STI seems not suitable, I would call that abuse, unless you have almost everything common between yout different tables. But you can use o polymorphic relation for comment, and extract the common behaviour in a plugin (something like acts_as_commentable) Look here : hhttp:// guides.rails.info/association_basics.html#polymorphic-associations --~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---
Yes, I was almost thinking that my self. Thanks for clarifying that. What I now is trying to do is to have a generic model called Item that relates to the different items through a itemable interface (belongs_to :itemable, polymorphic => true). And then the Item model belongs to the Section. What do you think of that? On 12 Maj, 11:59, David Bourguignon <tal.bourguig...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:> Hello, > STI seems not suitable, I would call that abuse, unless you have almost > everything common between yout different tables. > > But you can use o polymorphic relation for comment, and extract the common > behaviour in a plugin (something like acts_as_commentable) > > Look here : hhttp:// > guides.rails.info/association_basics.html#polymorphic-associations
Maybe Matching Threads
- acts_as_commentable release
- How can I dynamiclly generate models?
- Code reviews: my dumb use of acts_as_commentable (newbie)
- Difficulties in understanding Rail-Plugins in depth
- [Bug 2563] New: ssh bash -c drops arguments of the first command send to the remote.