在Class对象上调用方法

时间:2015-11-29 20:08:08

标签: ruby-on-rails ruby record

我的任务是向名为Profile的{​​{1}}类添加一个类方法,其中:

  • 接受出生年份的最小值和最高值

  • get_all_profiles子句中发出BETWEEN SQL子句,以查找出生年份介于最小年份和最长年份之间的WHERE

  • 在应用参数时防御SQL注入 SQL子句

  • 返回ASC出生年订单中的个人资料集合

我认为下面的实现是正确的,但是如何在类对象上调用它(即Profile)?

Profile.get_all_profiles?(min, max)

1 个答案:

答案 0 :(得分:1)

要将此方法实现为类方法,您可以将上述方法编写为:

def self.get_all_profiles(start_year, end_year)
  Profile.where(:birth_year => start_year..end_year).order(:birth_year )
end

或,

class << self

  def get_all_profiles(start_year, end_year)
    Profile.where(:birth_year => start_year..end_year).order(:birth_year )
  end

  ... other class methods ...

end

因此,您可以将其称为:

Profile.get_all_profiles(start_year, end_year)