On Saturday, 8 December 2012 at 11:00 AM, Gary Weaver wrote:
> This probably sounds crazy but has it even been considered to either have a > way to register constants for an autoloaded class so they will be undefined > before reload, or maybe even just a class method to do: > > def_const(:SOME_CONSTANT, value) > > that would: > > def def_const(constant, value) > remove_const(constant) if const_defined?(constant) > constant = value > end > > Some say to put constants where they aren't autoloaded (like in initializers) > and other even suggest using methods, but that defeats the purpose of using > constants. So does the method above, but it is more in line with what Rails > autoloading promises. > > Seems like avoiding the problem makes some consider just using magic numbers > in code which is like stepping back into time. If they're constants, that belong to the class, then make them constants inside the class: class MyModel < ActiveRecord::Model SOME_CONSTANT = 42 end That will reload correctly. > > -- > You received this message because you are subscribed to the Google Groups > "Ruby on Rails: Core" group. > To view this discussion on the web visit > https://groups.google.com/d/msg/rubyonrails-core/-/Rz8JI59_fV0J. > To post to this group, send email to [email protected] > (mailto:[email protected]). > To unsubscribe from this group, send email to > [email protected] > (mailto:[email protected]). > For more options, visit this group at > http://groups.google.com/group/rubyonrails-core?hl=en. -- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Core" 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-core?hl=en.
