はじめに
ポートフォリオを作成するためにオリジナルアプリを作成しております。
少しHTMLの学習から離れていたため、復習として投稿させていただきます。
なぜヘルパーメソッドを使うのか?
- パスの指定やRubyの埋め込みなどの記述がシンプルになる
- セキュリティ上の問題を解消する
以上の2点が主な理由になります。
ヘルパーメソッドの一例
| ヘルパーメソッド | 説明 |
|---|---|
| form_with | 投稿ページなどにおけるフォームの実装 |
| link_to | リンクの実装 |
| これ以外にもたくさんのヘルパーメソッドが存在します。 | |
コントローラー作成時に毎回生成される〇〇_helper.rbファイルを使用することにより、カスタムすることも可能です。 |
form_withメソッドとは?
フォームを実装するためのヘルパーメソッドです。
HTMLでformタグを使用することがありますが、その代わりに使用する事ができます。
HTMLで記述した場合
<form action="/tweets" method="tweet">
<input type="text" name="fix__content">
<input type="submit" value="修正する">
</form>
ヘルパーメソッドを用いて記述した場合
<%= form_with url: "/tweets", method: :tweet, local: true do |form| %>
<%= form.text_field :fix__content %>
<%= form.submit '修正する' %>
<% end %>
ヘルパーメソッドはRubyとして取り扱われるので、それを表示するために<%= %>で囲んで使用します。
form_withは、doからendまでの間がフォームの記述になります。
したがって、do〜endの間に、表示される投稿フォームの内容を記述していきます。
指定する引数について
<%= form_with url: "/tweets", method: :tweet, local: true do |form| %>
| 部品 | 説明 |
|---|---|
| urlオプション | リクエストのパスを指定する。 |
| methodオプション | リクエストのHTTPメソッドを指定。postを指定する場合は省略できる。 |
| localオプション | リモート送信(Ajax)を無効にするかどうかを指定。trueで無効になる。 |
url: "/posts", method: :post, local: trueという記述はオプションと呼ばれています。
それぞれフォームがどのような動作を行うかを決めています。
フォーム部品の主なヘルパーメソッド
| 部品 | 用途 |
|---|---|
| text_field | テキストボックス |
| password_field | パスワード入力ボックス(入力テキストがアスタリスク等に置かれて表示) |
| check_box | チェックボックス(複数選択可能) |
| radio_button | ラジオボタン(複数の中から1つしか選択できない) |
| submit | 送信ボタン |
この表のsubmitを除いて、これらのヘルパーメソッドの引数には、name属性にあたる名前が入ります。 |
|
name属性の値が、データを扱う際の名前であるキーになります。 |
おわりに
form_withに関して、自身ではまだまだわからないところが多くあります。
今回は理解できた部分だけを抜粋した基礎的な記事になります。
また間違いなどございましたら、コメントいただけると幸いです。
お手数をおかけしますが何卒よろしくお願いします。