On Jan 18, 6:43 pm, Marnen Laibow-Koser <[email protected]> wrote: > Matt Jones wrote in post #975916: > > > > > > > > > > > On Jan 18, 6:45pm, skt <[email protected]> wrote: > > >> # relationships and functionality to work on students and grades etc > >> end > > >> Searched around but can't find anything on this. It doesn't look like > >> I can accomplish this through STI. However I have the Parent and > >> Teacher functionality setup through these STI models. What is the best > >> way to model/enable this? > > > I did this with a pretty gross hack on an app a while back - the roles > > were designed to be mutually exclusive, then the client changed their > > mind 4+ months in. The trick was to disambiguate the records by > > fiddling with the email - in my case, I added the (underscored) role > > to the email. So [email protected] who was (for instance) a Parent and a > > Teacher would have two records: > > > Parent: email_address = '[email protected]' > > Teacher: email_address = '[email protected]' > > That's a dreadful idea. You're essentially keeping the user from > meaningfully pluscoding his e-mail address. > > > > > I had to tweak the code that handled login, and add some callbacks to > > keep the records in sync (as well as always de-mangling the emails for > > display). > > > From the UI side, I added a screen to allow users to switch between > > each of the roles; for the app, this made sense as each role had a > > somewhat different set of navigation tabs + view permissions. > > > Not the cleanest solution, but it beat rewriting everything to > > accommodate multiple roles per user. > > No it didn't. That's a dreadful hack, and you should rip it out and do > it right (which would probably have taken no longer...) > > > > > --Matt Jones > > Best, > -- > Marnen Laibow-Koserhttp://www.marnen.org > [email protected] > > -- > Posted viahttp://www.ruby-forum.com/.
Thanks for the feedback folks. I think I resolved that with a simple tweak by making Teacher inherit from Parent as this is an "is-a" relationship. class Teacher < Parent # Gives access to Parent functionality end The type column in User table says "Teacher" and the User (Teacher) object has access to Parent's functionality. Any potential pitfalls that I may not be seeing with this? Thanks, -S -- 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 [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.

