Skip to content

Instantly share code, notes, and snippets.

@chrismcg
Created July 4, 2012 16:52
Show Gist options
  • Save chrismcg/3048299 to your computer and use it in GitHub Desktop.
Save chrismcg/3048299 to your computer and use it in GitHub Desktop.
chris@zippy % console
/Users/chris/.rvm/gems/ruby-1.9.3-p0@hablo/gems/actionpack-3.2.6/lib/action_dispatch/http/mime_type.rb:102: warning: already initialized constant ZIP
Loading development environment (Rails 3.2.6)
[1] pry(main)> class Foo; end
=> nil
[2] pry(main)> f = Foo.new
=> #<Foo:0x007fa9db90fa60>
[3] pry(main)> f.model_name
NoMethodError: undefined method `model_name' for #<Foo:0x007fa9db90fa60>
from (pry):3:in `<main>'
[4] pry(main)> f.extend(ActiveModel::Naming)
=> #<Foo:0x007fa9db90fa60>
[5] pry(main)> f.model_name
NoMethodError: undefined method `parents' for #<Foo:0x007fa9db90fa60>
from /Users/chris/.rvm/gems/ruby-1.9.3-p0@hablo/gems/activemodel-3.2.6/lib/active_model/naming.rb:91:in `model_name'
[6] pry(main)> def f.parents; []; end
=> nil
[7] pry(main)> f.model_name
NoMethodError: undefined method `name' for #<Foo:0x007fa9db90fa60>
from /Users/chris/.rvm/gems/ruby-1.9.3-p0@hablo/gems/activemodel-3.2.6/lib/active_model/naming.rb:16:in `initialize'
[8] pry(main)> def f.name; 'Foo'; end
=> nil
[9] pry(main)> f.model_name
=> "Foo"
[10] pry(main)>
@mattwynne
Copy link

ta.

I think the form helper calls f.class.model_name, which means the only way to get compliance is to pollute your class forever more with f.class_eval { extend ActiveModel::Naming }. I'm not up for that.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment