如何在模型ROR3.0中从Controller起作用

时间:2012-09-03 07:24:23

标签: ruby-on-rails ruby ruby-on-rails-3

嗨,我是铁轨上的新红宝石,我需要了解一些基本信息 如何从控制器调用函数到模型

代表: - 控制器名称:检查

  def create
    @data = Checking.check()
  end

型号名称正在检查

  def check
    @a="xxxxx"
  end

如何从控制器功能调用模型功能

3 个答案:

答案 0 :(得分:0)

check是实例方法,你必须使类方法按类名def self.check end

调用

答案 1 :(得分:0)

似乎你指的是静态函数调用。在ruby中,静态函数用self定义。

def self.check
    a="xxxxx"
end

但是,在rails中,不应在Model中填充实例变量。在这种情况下,您可以从check函数返回值,并将其分配给控制器函数,如

def self.check
    return "xxxxx"
end

#In controller
@data = Checking.check()  # "xxxxx" will be stored in @data

但是,定义任何没有self的函数意味着它是一个实例函数。所以你需要通过该类的任何对象调用该函数。

答案 2 :(得分:0)

我们可以使用两个格式从控制器调用模型方法,

1。创建单例方法。     使用self关键字创建Singleton方法。例子

  class Check < ActiveRecord::Base
    def self.check
    end
  end

  we can call this singleton method using following format,

  @checks = Check.check

2。创建实例方法。       使用without self keyword

创建实例方法
  class Check < ActiveRecord::Base
    def check
    end
  end

  we can call this singleton method using following format,

  @check =Check.new
  @checks = @check.check