【Rails入門】helperの使い方まとめ

こんにちは! フリーエンジニアの長瀬です。

みなさんはhelperを活用していますか?

Ruby on railsはフレームワークの1つなのであらかじめ多くの実用的なhelperが組み込まれています。

helperの使い方を極めれば、より精錬されたコードを書けるようになります。

この記事では、helperの使い方について

・helperとは
・selectの使い方

という基本的な内容から、

・独自helperの作り方
・すべてのhelperが読み込まれるのを止める
・モデルでhelperを使用する方法

といった応用的な内容についても解説していきます。

helperとは

helper(ヘルパー)はその名前の通り、ある動作を処理する場合にメソッド化して扱えるようにRailsにあらかじめ組み込まれた機能です。

ウェブ開発を効率化するために多種多様なhelperが用意されているので、使いこなせば、生産性をあげる上で強力な武器になります。

たとえばlink_toform_withlabel_forimage_tagなどはすべてhelperです。

selectの使い方

それでは、よく使用されるhelperの1つのselectの使い方を学んでいきましょう。

まず、selectを使用するための環境を整えていきます。

今回使用するコントーラーとビューを作成するためにコマンドプロンプトに以下のコードを入力してください。
[Tutorialというコントローラーとtestというビューを作成する]

[実行結果]

これでコントローラーとビューが作成されました。

それではViewにselectを表示するためにappl/views/tutorial/test.html.erbに以下のコードを入力してください。

[appl/views/tutorial/test.html.erbの内容]

続いて、結果を確認するためにコマンドプロンプトにrails sと入力して、サーバーを起動してください。

そして、test.html.erbのルーティングを確認するためにapp/config/route.rbを開いてください。

[app/config/route.rbの内容]

となっていることを確認できます。

以下のURLにアクセスして、test.html.erbを開いてください。

http://localhost:3000/tutorial/test

(補足http://localhost:3000の箇所は各自の開発環境により読み替えてください。)

[実行結果]

Screen Shot 2560-08-03 at 13.39.21

Screen Shot 2560-08-03 at 13.39.30

このように、selectで選択肢を用意できました。

次にselectのオプション(prompt)を使って、先頭に『選択してください。』を追加してみましょう。

[appl/views/tutorial/test.html.erbに追加する内容]

続いて、結果を確認するためにコマンドプロンプトにrails sと入力して、サーバーを起動してください。

以下のURLにアクセスして、test.html.erbを開いてください。

http://localhost:3000/tutorial/test

[実行結果]
Screen Shot 2560-08-03 at 13.46.50

このように、先頭に『選択してください』を追加できました。

独自helperの作り方

Railsではあらかじめ用意されているhelperの他に自分でヘルパーを作成できます。

今回はヘルパーを3つ用意しました。

app/helpers/tutorial_helper.rbに以下のコードを追加してください。

helperを設定するためにはhelpersのファイルを修正する必要
があります。

heleprファイルはrails g controller〜の段階で作成されます。

[app/helpers/tutorial_helper.rbの内容]

これで、名前を入れるとこんにちは!〜を自動で追加、円を追加、税込価格に変換するヘルパーを設定できました。

では実際に、ビューで使用してみましょう。

[appl/views/tutorial/test.html.erbに追加する内容]

続いて、結果を確認するためにコマンドプロンプトにrails sと入力して、サーバーを起動してください。

以下のURLにアクセスして、test.html.erbを開いてください。

http://localhost:3000/tutorial/test

[実行結果]
Screen Shot 2560-08-03 at 14.15.04

このように、独自でヘルパーを設定することで自由に様々な操作を自動化できるので痒い所に手が届くようになります。

すべてのhelperが読み込まれるのを止める

Railsの初期設定では、すべてのhelperがすべてのView(ビュー)から読み込めます。

では同じ名前のhelperがあった場合はどうなるのでしょうか?

もしも同じ名前のhelperがあった場合には、app/helpersのファイルの名前順の降順に呼び出されるようになります。(下に設定されているhelperほど優先される)

これでは、自分が使用しようと思っているhelperが確実に呼び出されるわけではありません。

なので、すべて呼び出されないように設定を変更する必要がでてくるわけです。

さっそく、すべて呼び出されないように設定してみましょう。

config/application.rbに以下コードを追加してください。
[config/application.rbの内容

たったこれだけで、helperがすべて呼び出される問題を解決することができます。

helperがうまく機能しないと思った時は設定してみてください。

モデルでhelperを使用する方法

helperは初期設定ではビューを対象にして作成されています。

なので、モデルでhelperを使用したいときはhelperを明示的にincludeする必要があります。

モデルの始めにこのようにHelpersを呼び出すコードを追加してあげれば、モデルでもhelperを使えるようになります。

また、特定のhelperだけを呼び出す場合は以下のように名前を指定してあげてください。

まとめ

いかがでしたでしょうか?

この記事では、helperの使い方を解説しました。

Railsにあらかじめ定義されているhelperだけではなく、独自にhelperも定義して開発を進めていくことによってよりスマートに開発を進めていけます。

また、モデルやコントローラーにもhelperをincludeすれば使用可能なのでhelperは多くの場所で活躍できます。

この記事を機会にRailsにどんなhelperがあるのか、またどんな独自helperを作ることができるのかを調べてみてはいかがでしょうか。

もしhelperの使い方について忘れてしまったらこの記事を確認してくださいね!

未来に繋がるプログラミング学習、できていますか?

エンジニアと一口にいっても、フロントエンド、サーバーサイド、アプリ開発、AI関連など様々な業界や職種があり、業務内容や働き方、年収は変わります。

どんな働き方をしたいのか、どのくらい年収が欲しいのかなど具体的なキャリアパスを考えて、それを達成できる学習カリキュラムを考えていかないと、希望する方向性とは違うエンジニアになってしまったり、遠回りの学習に時間を費やしてしまう可能性があります。

侍エンジニア塾では目的から逆算する形で、まずあなたの目指すキャリアをヒアリングさせて頂いてからそれを達成するためのオリジナルの学習カリキュラムを作成しています。

今学んでいることが理想のエンジニアになるために繋がっているか不安でしたら、下記の無料体験レッスン予約カレンダーよりお気軽にご相談ください。

LINEで送る
Pocket

書いた人

長瀬来

長瀬来

Unityを使ったiOSアプリのリリース、フリマサイト運営の経験があります。

経験した言語はC、C#、Javascript、R、Python、Ruby、PHPなど

言語が好きで、英語や中国、ドイツ語を勉強しました。
将来的には海外で生活したいです。

現在はRuby on Rails5やCocos2dxの勉強を主にしています。

ライターとしては
できるだけ初心者にわかりやすい文章になるように心がけています。

趣味は語学、読書です。

おすすめコンテンツ

あなたにぴったりなプログラミング学習プランを無料で診断!

プログラミング学習の効率を劇的に上げる学習メソッドを解説