はじめに
今回はRailsのViewについてアウトプットしていこうと思います!
Viewの構造
Ruby on Railsのおけるビューには、コントローラーの実装後に実行される「HTMLなどのレスポンスをブラウザに表示する」という機能があります!
この機能を実装できるのは、Action Viewという仕組みをRailsが搭載しているからです!
Action View
Action Viewとは、Railsのアプリケーションにおいて、ビューの機能を実現するために必要な処理のオブジェクトのことです!
ビューファイルを1つにまとめてブラウザに表示するのは、これによって実現しています!
ControllerとViewの関連性
ディレクトリにコントローラー名と同じディレクトリを作成し、その配下にビューファイルを設置することによって、コントローラーとビューファイルを関連づけることができ、その関連づけされたビューファイルとレイアウトや部分テンプレートが組み合わさってブラウザへ表示される仕組みです!
ここで注意したいことは、ビューファイルがそのままブラウザに返却されるわけではなく、ビューファイルの内容がAction Viewによってまとめられ、ブラウザに返却されるということです!
また、コントローラー内で定義したインスタンス変数は、ビューファイル内で使用できますが、すぐに、ビューファイス内で使用できるわけではなく、コントローラーで取得したインスタンス変数は、Ruby on Railsの裏側で定義されるメソッドを経て読み変えられます!
そこから、Action Viewへ渡され、再度ビューファイルのインスタンス変数としてセットされ、初めて使用できる仕組みです!
簡単にいうと、仕組み自体はソースコードを読み込むことで理解できるということです!
ヘルパーメソッドの仕組み
ビューファイルでは、ヘルパーメソッドを使用することができます!
これで使えるヘルパーメソッドには、form_withやlink_toなどがあります!
ヘルパーメソッドは、文字列としてHTMLの要素が戻り値となっています!
ヘルパーメソッドは作成することができます!
そのために必要なこととしてモジュールという言葉があります!
モジュール
モジュールとは、Rubyにおける「インスタンスを生成できないクラス」のようなもののことです!
module モジュール名 end
また、モジュールの中ではクラスを定義することもできます!
クラスとモジュールの使い分けとして、具体的なオブジェクトを生成したい場合はクラスを使用し、処理だけが必要な場合はモジュールを使用します!
Helper
Helperとは、ヘルパーメソッドを作成できるモジュールです!
各コントローラーに対応したhelperのファイルに処理を記述することでヘルパーメソッドとして使用できます!
実際には〇〇Helperという形で定義されています!
module ApplicationHelper def sample #sampleというヘルパーメソッドです end end
このような感じにHelper内へメソッドとして定義すると、下記のようにビューファイルで使用できます!
コメント