ヘルパーメソッド

**パスとURLヘルパーメソッド:**Prefixに_pathをつけるとドメインやポートなどを除いた/から始まるパス部分を、_urlとするとドメインなどを含んだURLを返します。パス情報にidを含めたい場合は引数にハッシュ形式で値を指定します。

コンソールでURLの取得情報を確認することもできます。(app.をつけて実行する)

irb(main):002:0> app.edit_profile_url
=> "<http://www.example.com/profile/edit>"
irb(main):003:0> app.edit_profile_path
=> "/profile/edit"
irb(main):004:0> app.publisher_url(id: 1)
=> "<http://www.example.com/publishers/1>"
irb(main):005:0> app.publisher_path(id: 1)
=> "/publishers/1"

このヘルパーメソッドを使用する例

  1. url_for:Webアプリケーションのパスを構築するためのヘルパーメソッド。
url_for(edit_profile_path)
=> /profile/edit

# コントローラとアクション名を指定したパラメータ
url_for(controller: :profiles, action: :edit)
=> /profile/edit

# クエリパラメータを付与
url_for(controller: :profiles, action: :edit, id: 1234, detailed: 'true')
=> /profile/edit?detailed=true&id=1234
  1. link_to:aタグを生成するヘルパーメソッド。
link_to("profile link", edit_profile_path)
=> <a href="/profile/edit">profile link</a>

link_to("profile link", controller: :profiles, action: :edit)
=> <a href="/profile/edit">profile link</a>

link_to("profile link", controller: :profiles, action: :edit, id: 1234, detailed: 'true')
=> <a href="/profile/edit?detailed=true&id=1234">profile link</a>
  1. form_with:フォームを構築するためのヘルパーメソッド。使用することでモデルの情報をもとに送信URLや対応する内容のフィールドを埋めたり、エラーを表示したりできます。

    form_tagはモデルと関係しない汎用的なフォームを生成します。

form_withについて - 学習記録

Action View フォームヘルパー - Railsガイド

  1. stylesheet_link_tag / javascript_pack_tag:スタイルシートやJavaScriptのタグを表示する場合に使用します。レイアウトファイルの中で利用されているので自分で記述する必要はありません。

  2. time_ago_in_words:ある時刻と現在時刻の間にどの程度のあきがあるかをわかりやすく表示するヘルパーメソッドです。(RailsのDateHelperで定められているヘルパー)

    # ビューテンプレートで使用するとき
    <%= time_ago_in_words(Time.current) %>
    

    helperオブジェクト経由でメソッドを呼び出すことでコンソールで検証できます。

    irb(main):007:0> helper.time_ago_in_words(Time.current)
    => "less than a minute"
    irb(main):010:0> helper.time_ago_in_words(Time.now - 15.hours)
    => "about 15 hours"
    irb(main):011:0> helper.time_ago_in_words(Time.now + 3.days)
    => "3 days"
    

【rails】time_ago_in_wordsについて - 平凡エンジニアによる平凡ブログ