1

嗨,我是新的 ruby​​ on rails 我需要了解一些有关如何从控制器调用函数到模型的基本信息

例如:- 控制器名称:检查

  def create
    @data = Checking.check()
  end

型号名称为 Checking

  def check
    @a="xxxxx"
  end

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

4

3 回答 3

0

检查是实例方法,您必须使类方法按类名调用,def self.check end

于 2012-09-03T07:25:53.650 回答
0

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

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

但是,在 Rails 中,您不应该在模型中填充实例变量。在这种情况下,您可以从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 回答