Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
Help us understand the problem. What is going on with this article?

Railsのヘルパーと呼ばれるものたち

More than 5 years have passed since last update.

はじめに

RoRを触っているとヘルパーという単語がやたらに出てくる。
ヘルパーヘルパーと気安く呼ばれている気がするのだが、
たくさんありそうな気がしていて、何がなんだかなので、調べた。

Form系

その1. *_tagヘルパー

代表例

form_tag, label_tag

場所

スクリーンショット 2015-09-28 18.20.17.png
スクリーンショット 2015-09-28 18.20.26.png

ActionView::Helpers::FormTagHelperモジュールの中には他にも
*_tagヘルパーの定義がある。

説明

Action View フォームヘルパー | Rails ガイド で*_tagヘルパーと呼ばれているもの。

【Rails】formヘルパーを徹底的に理解する - Qiita によると、

form_for: 任意のmodelに基づいたformを作るときに使う

その2. モデルオブジェクトヘルパー

代表例

form_for, f.label

場所

スクリーンショット 2015-09-28 18.27.28.png
スクリーンショット 2015-09-28 18.27.46.png

form_helper.rbの構造は、
スクリーンショット 2015-09-28 18.28.47.png
このようになっており、form_forActionView::Helpers::FormHelperモジュールの方にあったが、f.labelの方はActionView::Helpers::FormBuilderモジュールの中にあるようだ。
(とはいえ、def labelActionView::Helpers::FormHelperモジュールの方にもあった...)

説明

【Rails】formヘルパーを徹底的に理解する - Qiita によると、

form_tag: modelに基づかないformを作るときに使う

URL関係

その3. link_to

場所

スクリーンショット 2015-09-28 18.33.18.png
スクリーンショット 2015-09-28 18.33.31.png
Form系と同じくActionView::Helpersモジュールの中にある位置づけ(*.rbファイル的には別ファイルで書かれている)。

その4. _pathヘルパー

場所

見つけられず

その5. _urlヘルパー

場所

見つけられず

まとめ

RoRで主にヘルパーと呼ばれるものは、
ActionViewヘルパー
その中に、FormTagHelperやらFormHelperやらFormBuilder(ヘルパーって名前に付いてないのね)やらUrlHelperやらがあって、各種メソッドが定義されている。

モジュール Railsガイドでの総称
FormTagHelper *_tagヘルパー
FormHelper, FormBuilder モデルオブジェクトヘルパー
UrlHelper, _pathヘルパー, _urlヘルパー たぶんルーティングヘルパー

以下のあたりにもmodule Helpersがあったのは気になるが...
スクリーンショット 2015-09-28 18.41.44.png

shingo-nakanishi
https://www.clear-lesson.com/
https://www.clear-lesson.com/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away