On May 8, 2014, at 12:25 PM, Tomas Varneckas <[email protected]> wrote:
> Hi, > > We have a project at my workplace which heavily relies on a custom in-house > extension to ActiveRecord which does this > (but ofcourse in an uglier way). It'd be great if this was a builtin feature. > > Hardcoding class names in table rows makes for tedious migrations whenever > classes are renamed. > I’m not sure that a call to `update_all` really counts as “tedious”: StiBaseClass.where(type: ‘OldType’).update_all(type: ‘NewType’) The biggest issue I see with using enums for this is that the possible values of an enum need to be listed *someplace* - reflecting on all the subclasses of StiBaseClass won’t work since the order isn’t stable under renaming. This applies doubly to using enums in polymorphic association _type fields… —Matt Jones > > On Thu, May 8, 2014 at 6:00 PM, Zac Moody <[email protected]> wrote: > Hi all, > > I was thinking that someone might want the type column used with Single-Table > Inheritance to be an Enum rather than a string. Is the counter argument that > STI is responsible for the type column so it doesn't matter? > > If the inheritance_column did support enum, would the resulting code be > repeating itself too much? > > class User < ActiveRecord::Base > enum type: [:student, :teacher] > end > > class Teacher < User > end > class Student < User > end > > If there's interest in this feature I would be happy to work on adding it. > > Zac > > -- > You received this message because you are subscribed to the Google Groups > "Ruby on Rails: Core" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > To post to this group, send email to [email protected]. > Visit this group at http://groups.google.com/group/rubyonrails-core. > For more options, visit https://groups.google.com/d/optout. > > > -- > You received this message because you are subscribed to the Google Groups > "Ruby on Rails: Core" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > To post to this group, send email to [email protected]. > Visit this group at http://groups.google.com/group/rubyonrails-core. > For more options, visit https://groups.google.com/d/optout.
signature.asc
Description: Message signed with OpenPGP using GPGMail
