我有ConversionRate
型号
class ConversionRate < ActiveRecord::Base
end
我想转移模型我的控制器方法find_something
class ConversionRatesController < ActionController::Base
#....
def find_something (param)
rate = ConversionRate.where(:param=> param)
end
end
我该怎么做?我在想这样的事情
class ConversionRate < ActiveRecord::Base
def self.find_something(param)
return self.where(:param=> param)
end
答案 0 :(得分:2)
您似乎已经找到了解决方案:
class ConversionRate < ActiveRecord::Base
class << self
def find_something(param)
where(:param=> param)
end
end
end
另一种方法是使用scope:
class ConversionRate < ActiveRecord::Base
scope :find_something, ->(param) { where(param: param) }
end
然后你可以从控制器中调用它,如ConversionRate.find_something(params)
如果您需要在param
上执行某些验证,我会鼓励第一种方法,否则第二种方法非常简单。