「Agile Web Development with Rails 4.0」を読んでいるうちに、私は完全に理解できない行に遭遇しました。 application.html.erb
内部で著者は次のようにbody
タグのclass
属性を設定します。Rails - controller.controller_nameビュー内 - コントローラオブジェクトはどこに定義されていますか?
<body class='<%= controller.controller_name %>'>
私はそれを理解して、コントローラの名前の強調最後の部分を返しますRailsの中ActionController::Metal#controller_name
方法があることを知っています。このメソッドが呼び出されるcontroller
オブジェクトが私を混乱させます。私はRails APIを検索し、現在のコントローラのインスタンスを返すcontroller
というメソッドは見つかりませんでした。定義されている場所はどこですか?
Hmmmにチェックインしてください。通常、コントローラーの名前はparams [:controller]を介して検出されます。コントローラーの名前とアクションはparamsハッシュで送信されるからです。これはヘルパーファイルのカスタムメソッドではないと確信していますか? – bkunzi01
はい、私はそれがカスタムではないことを100%確信しています - 私はこのアプリケーションの部分をチェックしましたが、 'controller'メソッドの定義はありませんでした。 Btwのレールガイドは 'controller_name'に言及し、' controller overview'の 'params'ハッシュ - セクション4.3(http://edgeguides.rubyonrails.org/action_controller_overview.html)の代わりにそれを使用するようアドバイスします。 –