90
96

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 5 years have passed since last update.

Railsヘルパーメソッドのまとめ(よく使うもの)

Posted at

ヘルパーメソッドとは?

ViewをよりシンプルにDRYに書くための、Railsで用意されたモジュール。
基本的にはviewをhelpしてくれるもの。自分で作ることもできる。

基本的なヘルパーたちの例

form_tag

  • フォームをどうにかしたい時に使う。
  • name, value属性が必要。

submit_tag

  • submit機能をつけたいときに使う。
  • <input name="****" type="submit" value="***" />
form_tag/submit_tagの例
<%= form_tag,{ method:'path'}  do %>
// # method指定しない場合、デフォルトでpostになる,{}省略可能
  <%= text_field_tag :title, @note.title %>
// :title がname
// @note.titleがvalue
 <%= submit_tag '保存' %>
<% end %>

text_field_tag

  • テキストフィールド
  • name,value属性が必要

text_area_tag

  • テキストエリア(行数のあるもの)
  • text_field_tagと同じ使い方

link_to ヘルパー

  • リンク挿入の時に使う。
  • "URL"部分には、名前付きルート root_XXXXのしても可能
  • 'テキスト'の部分は変数でもOK。
  • idとclassはハッシュとして与えるが、{}省略可能
link_to
<%=link_to ’テキスト', "URL" , id:"top-link", class: "btn top-btn" %>

How to Use

つくったヘルパーをコントローラで使えるようにするには、コントローラでヘルパーを定義したヘルパーファイルを
include ヘルパー名で読み込む必要がある。

helper定義

application_helper.rb
module ApplicationHelper

def current_user?(user)
  current_user.id == user.id
  end
end

helper呼び出し

users_controller.rb

class UsersController
     include ApplicationHelper
end

if !current_user?
show.htmr.erb
<% if current_user.id == @note.user.id %>

<% if current_user?(@note.user) %>

notes_controller.rb
if current_user.id != note.user.id
  redirect_to root_oath
end

def create
  @note = Note.new(note_params)
  @note.user_id = current_user.id
end
90
96
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
90
96

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?