2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Railsのhelperとは

Last updated at Posted at 2023-04-22

はじめに

Railsのhelperについてまとめてみました

helperとは

RailsのViewをシンプル書くことが出来る機能
Viewでの処理をメソッドとして定義し、簡単に使いまわせるようにすることが出来る

あらかじめRailsに組み込まれたヘルパーは組み込みヘルパー、独自に作成するものはカスタムヘルパーと言う

よく使われる組み込みヘルパー

よく使われる組み込みヘルパーの一部を紹介する

link_to

リンクを作成できるヘルパーメソッド

<%= link_to "テキスト", "リンク先のパス" %>と記述する

ルーティングの名前でリンク先を指定する

一般的にはこの方法が通常

  1. Prefixを確認
    Prefixはパスが代入されている変数のようなもの
    rails routesコマンドで確認が取れる

  2. Prefixの末尾に_pathをつけ、<%= link_to "名前", 確認したPrefix_path %>とする

app/views/layouts/application.html.erb
<!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 コントローラー名とアクション名 }, { オプション } %>と記述する

app/views/layouts/application.html.erb
<!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!と表示されるカスタムヘルパー

app/helpers/application_helper.rb
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)を使ってサクッとリンクを生成する方法を解説!

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?