我正在使用Ruby on Rails 3.0.9,我想从类名建立控制器名称,以及遵循RoR命名约定。例如,如果我有Articles::Comment
类,我想检索articles/comments
字符串。
也许它存在由开发人员创建的RoR方法来处理这些约定,但我不知道。
如何检索控制器名称,如上例所示?
答案 0 :(得分:3)
您正在寻找下划线方法。 More info here
"Articles::Comment".underscore
或者,如果你自己有控制器类,那就是这样的:
Articles::Comment.name.underscore
修改强>
从路径开始,它们一次构建一个,即使命名它们也是如此。当你做这样的事情时:
map.resources :articles do |articles|
articles.resources :comments
end
首先要做的是:
"articles". classify # which yields "Article" then rails is going to append "Controller" to it
然后它会得到“评论”并做同样的事情,但是这一条将在“/ articles”下被路由。 Rails没有命名空间内部资源,因此,控制器必须是CommentsController,而不是Articles :: CommentsController。
只有这样你才能清楚地命名一些东西,Rails会命名你的类:
map.namespace :admin do |admin|
admin.resources :articles # will require controller "Admin::ArticlesController"
end
我希望现在更清楚了。