1

こんにちは、Ruby on Rails の初心者です。コントローラーからモデルに関数を呼び出す方法について、いくつかの基本的な情報を知る必要があります。

例:- コントローラ名: チェック

  def create
    @data = Checking.check()
  end

モデル名は確認中です

  def check
    @a="xxxxx"
  end

コントローラー関数からモデル関数を呼び出す方法

4

3 に答える 3

0

チェックはインスタンスメソッドなので、クラス名で呼び出すクラスメソッドを作る必要があり、def self.check end

于 2012-09-03T07:25:53.650 に答える
0

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
于 2012-09-03T09:07:16.403 に答える
0

静的関数呼び出しを参照しているようです。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と、その関数はインスタンス関数になります。したがって、そのクラスの任意のオブジェクトを介してその関数を呼び出す必要があります。

于 2012-09-03T07:31:28.103 に答える