ume

rails helperにメソッドを書く場合とmodelファイルにメソッドを書く場合の違い

そもそもhelperとは?

⇨Viewをよりシンプルに書くためのモジュール(部品を集めたようなもの)要はviewファイル内で使えるメソッド.
helperの例(form_tagやlink_toなどがある)

<%= form_with url: "パス" do |form| %>
  <!--フォーム内容 -->
<% end %>

どこにhelperメソッドを定義する?

⇨app/helpers配下にファイル作成しその中に記述する.

もしapplication_helper.rbにメソッドを定義した場合.
⇨どこからでも呼び出すことができます.

コントローラ名_helper.rb は、対象のコントローラの経由の処理でのみ使う場合に使用します.
⇨index_helper.rbを作成するとindex.html.erbファイルでhelperが使用できる.

modelファイルにメソッドを書く場合

モデルはそのモデルの概念やデータ構造から責務となるメソッドだけを持つべきです それ以外はコントローラーに private で定義する.
例 もしお客さんが注文した商品の価格の合計を計算するメソッドを以下のように作ったとき

 def total_amount
    food.price * count
  end

これは注文金額を保存しているモデルファイルの中に記述した方が良い