有没有办法从 Rails 模型的文件名(例如/app/models/foo/bar.rb
)到它的模型名称(例如Foo::Bar
)?和/或反之亦然?
还是我必须解析字符串以找出它们对应的内容?
有没有办法从 Rails 模型的文件名(例如/app/models/foo/bar.rb
)到它的模型名称(例如Foo::Bar
)?和/或反之亦然?
还是我必须解析字符串以找出它们对应的内容?
从模型到文件名
["app/models/", Foo::Bar.to_s.underscore, ".rb"].join("")
从文件名到模型
"app/models/foo/bar.rb".sub("app/models/", "").sub(".rb", "").classify
我知道这看起来像一个黑客。但是没有简单的方法来做这些事情
似乎可以做的最接近的事情是使用ActiveSupport::Inflectorunderscore
中的andcamelize
方法。