ERBタグとは
<%=と%>で囲まれた部分をERBタグと言います。
ERBタグは拡張子が「erb」のビューファイルで使用することができます。
ERBタグを使用して記述されたコードはビューファイルが読み込まれる際にHTMLコードとなって読み込まれます。
また-%>のように閉じるタグに-をつける形もあります。
このようにすることで、余計な改行を取り除くことができます。
<%= %>と<% %>の違いは、ERBタグに囲まれた処理の返り値を出力するか、しないかという違いがあります。
link_toメソッド
link_toはERBタグの中で使用することができるメソッドです。
このメソッドは引数を指定することで様々なリンクを生成します。
通常HTMLコード内でリンクを生成する際にはaタグを使用します。
link_toメソッドを使って記述を行うと、HTMLコードが読み込まれる際にaタグに変換されるので、サイトを表示した際にはaタグと同様に、リンクとして表示されます。
- 第一引数に文字列型で表示する文言
- 第二引数に文字列型でルーティングのパスを指定します
- httpメソッドを変えたければ第三引数で指定できる
<%= link_to 'サインアウト', "/users/sign_out", method: :delete %></li>
form_for(ヘルパーメソッド)
特定のモデルを編集・追加するためのフォームを生成するヘルパーメソッドです。
特定のテーブルにレコードだけを新規作成、更新するときに利用します。
form_forは、引数に渡すインスタンスの状態によって、フォームを投稿した際に実行されるアクションを自動で切り替えてくれます。
newメソッドによって新たに生成されたばかりのインスタンスならばcreateアクションを、findメソッドなどによってDBの情報を反映させた状態のインスタンスならばupdateアクションを動かします。
<%= form_for(@モデルクラスのインスタンス) do |f| %>
…
<% end %>
メソッド一覧
f.label | labelのlabelタグを表示 |
f.text_field | textのinputタグを表示 |
f.date_select | モデルで設定したフィールドをselectタグで選べるようにして表示 |
f.check_box | checkboxのinputタグを表示 |
f.number_field | numberのinputタグを表示 |
f.submit | submitのinputタグを表示 |
form_forとform_tagの違い
- form_for: モデルがあるデータを扱うときに使う。
params.require(:モデル名).permit(:カラム名)で入力した情報が取得できます。 - form_tag: 単にデータを特定のアクションに送りたい時に使う。(検索フォームなど)
params.permit(:キー名)で入力した情報が取得できます。
hidden_field_tag
hidden_field_tag は、ユーザーが入力する必要の無い自明のデータをパラメーターとして送信したい時に利用します。