Rails
RubyOnRails

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

ヘルパーメソッドとは?

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