アクション、メソッドとインスタンスメソッド、クラスメソッドの違い
[アクション、メソッドとインスタンスメソッド、クラスメソッドの違い]
[アクション]
ルーティングによりリクエストを受けた時に実行される処理のこと。(コントローラに記載する。)
アクションとは、コントローラクラスのメソッドの事。
[メソッド]
処理をまとめて、その処理のかたまりに名前を付けたもの。
[インスタンスメソッド]
クラスにメソッド(railsだとモデル)を記載するとインスタンスメソッドになる。
インスタンスメソッドは、そのクラスのインスタンスに対して使うメソッド。
以下のように[modelsファイル]に定義して以下のように使う。
[app/models/user.rb] def own?(object) id == object.user_id end
[app/views ファイル] <% if current_user.own?(board) %> # current_userをレシーバとして引数に(board)を渡して使う。
[クラスメソッド]
クラスに定義するメソッド。
クラスメソッドは、クラスの中でないと使えない。(以下参照)
class User def put_user puts "太郎" + "一郎" + "二郎" end end put_user # クラスの外でメソッドを使うとエラーになる。
クラスメソッドをクラスの外で使う方法は、以下のようになる。
class User def self.put_user puts "太郎" + "一郎" + "二郎" end end User.put_user # クラスメソッドをクラスの外で使えるようにする為に、メソッド名の前に[self.]を加えて、呼び出す時は、[クラス名.メソッド名]とする。
参考記事: