2016-09-13 3 views
0

「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というメソッドは見つかりませんでした。定義されている場所はどこですか?

+0

Hmmmにチェックインしてください。通常、コントローラーの名前はparams [:controller]を介して検出されます。コントローラーの名前とアクションはparamsハッシュで送信されるからです。これはヘルパーファイルのカスタムメソッドではないと確信していますか? – bkunzi01

+0

はい、私はそれがカスタムではないことを100%確信しています - 私はこのアプリケーションの部分をチェックしましたが、 'controller'メソッドの定義はありませんでした。 Btwのレールガイドは 'controller_name'に言及し、' controller overview'の 'params'ハッシュ - セクション4.3(http://edgeguides.rubyonrails.org/action_controller_overview.html)の代わりにそれを使用するようアドバイスします。 –

答えて

関連する問題