アンダースコア方式をお探しの場合は、 More info here。
"Articles::Comment".underscore
それとも、あなたはコントローラクラス自体を持っているならば、それはこのようになります:
Articles::Comment.name.underscore
EDITルートのよう
は、彼らが1箇所ずつ構築されていますあなたがそれらを名前空間にしても。あなたはこのような何かするとき:行うに起こっているレール
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
私はそれが今より明確に願っています。
あなたのコードを使って、私は 'pluralize'メソッドも呼び出す必要があります...しかし、これはRoRがこれらの命名規則を内部的に扱う方法です。 – Backo
あなたの質問が間違っているように見えますが、私は複数形に気づいていませんでした。これはRailsがroutesの名前ではなくarticles_comment_pathのようにパスの名前を生成する方法です。ルート上の各部分はそれ自身の名前です、それはクラス名tableize'dです。 –
コントローラーの命名規則をカバーするように更新されました。 –