The result (at least I think it is the result of above) is that
rails g model KnownIP
provides a model class KnownIp in known_ip.rb, rather than KnownIP in
known_i_p.rb
Colin
> --
> 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 rubyonra...@googlegroups.com.
> To unsubscribe from this group, send email to rubyonrails-co...@googlegroups.com.
> For more options, visit this group at http://groups.google.com/group/rubyonrails-core?hl=en.
>
Oh, are you sure it says both?
> On 04/04/2011, at 0:20, Colin Law <cla...@googlemail.com> wrote:
>> ...
>> The result (at least I think it is the result of above) is that
>> rails g model KnownIP
>> provides a model class KnownIp in known_ip.rb, rather than KnownIP in
>> known_i_p.rb
It produced a KnownIp model when one might expect it to produce
KnownIP. Having investigated further I am pretty sure the problem is
in ActiveSupport::Inflector#underscore, giving
ruby-1.8.7-p302 > ActiveSupport::Inflector.underscore("KnownIP")
=> "known_ip"
ruby-1.8.7-p302 > ActiveSupport::Inflector.underscore("KnownIP").camelize
=> "KnownIp"
However looking at the intro on [1] I see
"The Rails core team has stated patches for the inflections library
will not be accepted in order to avoid breaking legacy applications
which may be relying on errant inflections. If you discover an
incorrect inflection and require it for your application, you’ll need
to correct it yourself (explained below)."
So this may be a case of "that is just how it is".
Colin
[1] http://api.rubyonrails.org/classes/ActiveSupport/Inflector.html
As a rule of thumb you can think of underscore as the inverse of camelize, though there are cases where that does not hold:
"SSLError".underscore.camelize # => "SslError"
That is true, thanks.
Colin
Yes, I noticed that in the other thread.
Colin