use*_*677 3 ruby ruby-on-rails-5.2
module A
module B
class C < A::Base
def some_method
end
end
end
end
Run Code Online (Sandbox Code Playgroud)
当我使用引用类名时,如何获得类名“ C” .name,我得到了A :: B :: C
在Rails中,你可以做到这一点的:A::B::C.name.demodulize。
例:
Loading development environment (Rails 4.2.7.1)
[1] pry(main)> module A
[1] pry(main)* class Base;end
[1] pry(main)* module B
[1] pry(main)* class C < A::Base
[1] pry(main)*
[1] pry(main)* def some_method
[1] pry(main)*
[1] pry(main)* end
[1] pry(main)* end
[1] pry(main)* end
[1] pry(main)* end
=> :some_method
[2] pry(main)> A::B::C.name.demodulize
=> "C"
[3] pry(main)>
Run Code Online (Sandbox Code Playgroud)
查看有关的文档 #demodulize
从字符串的常量表达式中删除模块部分。