はじめに
Railsのhelper
についてまとめてみました
helper
とは
RailsのViewをシンプル書くことが出来る機能
Viewでの処理をメソッドとして定義し、簡単に使いまわせるようにすることが出来る
あらかじめRailsに組み込まれたヘルパーは組み込みヘルパー、独自に作成するものはカスタムヘルパーと言う
よく使われる組み込みヘルパー
よく使われる組み込みヘルパーの一部を紹介する
link_to
リンクを作成できるヘルパーメソッド
<%= link_to "テキスト", "リンク先のパス" %>
と記述する
ルーティングの名前でリンク先を指定する
一般的にはこの方法が通常
-
Prefixを確認
Prefixはパスが代入されている変数のようなもの
rails routes
コマンドで確認が取れる -
Prefixの末尾に
_path
をつけ、<%= link_to "名前", 確認したPrefix_path %>
とする
<!DOCTYPE html>
<html>
<head>
<title>Sample App</title>
<meta name="viewport" content="width=device-width,initial-scale=1">
<meta charset="utf-8">
<%= csrf_meta_tags %>
<%= csp_meta_tag %>
<%= stylesheet_link_tag "application", "data-turbo-track": "reload" %>
</head>
<body>
# 通常のlink_to
<%= link_to "Google", "https://www.google.co.jp/" %>
# 名前付きlink_to
<%= link_to "About", about_path %>
</body>
</html>
button_to
ボタンを簡単に作成することができるヘルパーメソッド
<%= button_to "ボタン名", { パス or コントローラー名とアクション名 }, { オプション } %>
と記述する
<!DOCTYPE html>
<html>
<head>
<title>Sample App</title>
<meta name="viewport" content="width=device-width,initial-scale=1">
<meta charset="utf-8">
<%= csrf_meta_tags %>
<%= csp_meta_tag %>
<%= stylesheet_link_tag "application", "data-turbo-track": "reload" %>
</head>
<body>
<%= button_to 'ユーザー登録', {controller: 'users', action: 'new'}, {method: :get }%>
</body>
</html>
カスタムヘルパーを作ってみる
カスタムヘルパーの作り方は以下の2通りある
-
app/helpers/application_helper.rb
に処理を記述
→ アプリケーション全体に渡ってのヘルパーを作る場合はこれを使う -
app/helpers/<コントローラ名>_helper.rb
に処理を記述
→ 対象のコントローラの経由の処理でのみ使う場合に使用
書き方
module <モジュール名>
def <処理1>
# 処理1の内容
end
def <処理2>
# 処理2の内容
end
Hello, World!
と表示されるカスタムヘルパー
module ApplicationHelper
def greet
'Hello, World!'
end
end
Viewファイルで<%= greet %>
と記述すればHello, World!
と表示される
参考記事
知っておきたいヘルパーメソッド
【Ruby on Rails】Helperとは?その役割・使い方について
【Rails入門】helperの使い方まとめ
【Rails入門説明書】helperについて解説
【Rails】自作ヘルパの作成方法|controllerやscaffoldで自動生成されるapp/helpers/xxx_helper.rbの使い方
【リンクの作成!】Ruby on Railsでのlink_toの使い方
Railsでリンクヘルパー(link_to)を使ってサクッとリンクを生成する方法を解説!