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