こんにちは、Ruby on Rails の初心者です。コントローラーからモデルに関数を呼び出す方法について、いくつかの基本的な情報を知る必要があります。
例:- コントローラ名: チェック
def create
@data = Checking.check()
end
モデル名は確認中です
def check
@a="xxxxx"
end
コントローラー関数からモデル関数を呼び出す方法
こんにちは、Ruby on Rails の初心者です。コントローラーからモデルに関数を呼び出す方法について、いくつかの基本的な情報を知る必要があります。
例:- コントローラ名: チェック
def create
@data = Checking.check()
end
モデル名は確認中です
def check
@a="xxxxx"
end
コントローラー関数からモデル関数を呼び出す方法
チェックはインスタンスメソッドなので、クラス名で呼び出すクラスメソッドを作る必要があり、def self.check end
2 つの形式を使用してコントローラーからモデル メソッドを呼び出すことができます。
1. シングルトン メソッドの作成。シングルトン メソッドは、self キーワードを使用して作成されます。例
class Check < ActiveRecord::Base
def self.check
end
end
we can call this singleton method using following format,
@checks = Check.check
2. インスタンス メソッドの作成。インスタンス メソッドは、self キーワードなしで作成されます
class Check < ActiveRecord::Base
def check
end
end
we can call this singleton method using following format,
@check =Check.new
@checks = @check.check
静的関数呼び出しを参照しているようです。ruby では、静的関数は で定義されself
ます。
def self.check
a="xxxxx"
end
ただし、レールでは、モデルにインスタンス変数を設定しないでください。その場合、関数から値を返し、次のcheck
ようなコントローラー関数に割り当てることができます
def self.check
return "xxxxx"
end
#In controller
@data = Checking.check() # "xxxxx" will be stored in @data
ただし、なしで関数を定義するself
と、その関数はインスタンス関数になります。したがって、そのクラスの任意のオブジェクトを介してその関数を呼び出す必要があります。