Ruby
 Computer >> コンピューター >  >> プログラミング >> Ruby

Railsヘルパーの使用方法(完全ガイド)

Railsのヘルパーとは何ですか?

ヘルパーは、(ほとんど)Railsビューで再利用可能なコードを共有するために使用されるメソッドです。 Railsには一連の組み込みヘルパーメソッドが付属しています。

これらの組み込みヘルパーの1つは、time_ago_in_wordsです。 。

ここに例があります

time_ago_in_words(Time.now)
# "less than a minute"

time_ago_in_words(Time.now + 60)
# "1 minute"

time_ago_in_words(Time.now + 600)
# "10 minutes"

この方法は、この特定の形式で時間を表示する場合に役立ちます。

別のRailsビューヘルパーはnumber_to_humanです 。

number_to_human(10_000)
# "10 Thousand"

これは、数字を読んだときと同じように数字を印刷して印刷したい場合に最適です。これにより、より人間味を感じることができます。

RubyonRailsのドキュメントでさらに多くのヘルパーを見つけることができます。

しかし、あなたはあなたがあなた自身を書くことができることを知っていましたか?

独自のヘルパーメソッドの作成

カスタムヘルパーメソッドを作成する場合、正しいディレクトリパスはapp/helpersです。 。

ヘルパーモジュール内にヘルパーを記述します 。

すべてのRailsアプリケーションには、デフォルトでベースヘルパーモジュールが付属しています。これはApplicationHelperと呼ばれます。 。

ここでヘルパーメソッドを追加できます。

これらのメソッドは、すべてのビューで自動的に使用できるようになります。後で、コントローラーでそれらを使用する方法と、それが悪い考えである理由を学びます。

すべてのヘルパーをApplicationHelperに書き込むことができます 。

しかし、別のオプションがあります…

ヘルパーモジュールを作成して、メソッドをより適切に整理することができます。

手順

  • app/helpersの下に新しいファイルを作成します
  • user_helper.rbのような名前を付けます
  • ファイル名と一致する新しいモジュールを追加します

# app/helpers/user_helper.rb

module UserHelper
  def format_name(user)
    if user.gender == "M"
      "Mr. #{user.name}"
    else
      "Ms. #{user.name}"
    end
  end
end

このコードは、性別に基づいて正式な方法で人に対応するために使用できます。

主なメリットは?

必要なときやコードを変更する必要があるときに、他のビューでこのロジックを繰り返す必要はありません。変更する必要があるのは1か所だけです。

とてもいいです!

新しいヘルパーモジュールの使用

ビューでヘルパーメソッドを使用できます。

このように

<%= format_name(@user) %>

簡単ですよね?

ビューの外でヘルパーを使用する場合は、別のものが必要になります。

コントローラーからヘルパーを使用する方法

あまり一般的ではありませんが、コントローラーアクションからヘルパーメソッドを使用することは可能です。

Rails 5より前は、ヘルパーモジュールを含める必要がありました。

新しいバージョンでは、コントローラーでhelpersを使用してヘルパーを使用できます。 (複数)オブジェクト。

このように

class UsersController
  def index
    helpers.time_ago_in_words(Time.now)
  end
end

このようにして、コントローラーからヘルパーを使用できます。ただし、これは設計上の問題である可能性があるため、これを行う前によく考えてください。

代わりにプレーンなRubyオブジェクトを使用することを検討してください。

Railsコンソールを楽しむ

Railsコンソール(Railsアプリがロードされたirb)を使用して、メソッドを試したり、いろいろと遊んだりするのが大好きです。

ヘルパーが含まれています!

helper.method_nameを使用してコンソールからヘルパーを使用できます 。

エラーメッセージが表示されないように、「ヘルパー」の単数形に注意してください。また、コンソールはコードの変更を自動的に再読み込みしないことに注意してください。

RailsViewヘルパーを作成するためのベストプラクティス

いつヘルパーメソッドを作成する必要がありますか?

HTMLのビットを生成するロジックがあるときはいつでも。

通常、これは2つのカテゴリのいずれかに分類されます。1つは文字列の書式設定で、もう1つは条件付きページ要素です。

もう1つのヒント…

優れたヘルパーを作成する場合は、インスタンス変数を使用しないでください。現在のビューでは使用できる場合がありますが、別のビューでは使用できない場合があります。

変数が欠落しているため、エラーが発生します。

解決策は?

パラメータを使用して、メソッドに必要なデータが明確で明示的になるようにします 。

# wrong way

def eat_healthy
  @fruit.eat
end

# do this instead

def eat_healthy(fruit)
  fruit.eat
end

最後のヒントは、ヘルパーをモジュールに分割することです。各モジュール名は、含まれているメソッドの種類を明確に示しています。

ただし

これはメソッド名の重複には役立ちません。エラーや混乱が生じる可能性があります。

すべてのヘルパーは一意の名前を持っている必要があります 。

別の方法として、このガイドで説明されているように、プレゼンターオブジェクトを使用してみてください。

概要

Railsのヘルパーについて学びました!ビューの複雑なロジックをフォーマットおよび処理するために使用できる一連のユーティリティメソッド。

次に、独自のヘルパーを作成します。

読んでくれてありがとう🙂


  1. ウェブサイトを保護するには? (完全な Web サイト セキュリティ ガイド)

    更新が間に合わなかった、パスワードが安全でないなど、完全に防止可能な理由により、いくつかのハッキングが発生しています。 どうすればこれを知ることができますか? 25,000 以上のハッキングされたサイトを支援しており、ウェブサイト セキュリティに関して豊富な経験があります。 . このウェブサイト セキュリティの基本ガイドでは、ウェブサイトを保護する方法について説明します : あなたがウェブサイトのセキュリティに不慣れで、その意味を完全に理解していない場合でも、 ウェブサイトを保護しようとして失敗したことがあるとしても、 たとえ… 圧倒されて、どこから始めたらよいかわからな

  2. iTunes 12 の基本ガイド – iTunes 12 の使い方

    音楽、映画、テレビ番組、その他のメディアを整理するのは簡単ではありません。しかし、iTunes はその強力な機能であなたを助けることができます。コレクションを簡単に作成して、聴きたい音楽を決めることができます。 iTunes を使用すると、手動でプレイリストを作成したり、リストの作成中に条件を指定したりできます。90 年代の 4 つ星または 5 つ星評価のトラックなどです。リストを保存することもできます。 iTunes を操作してその重要な機能を見つける方法は次のとおりです。 必読 iTunes から iPhone を削除または移動する方法 1.トラックまたはアルバムを購入 トラックを購入