Rails如何创建一个自我保持干燥的类方法?

Rai*_*ner 2 ruby ruby-on-rails ruby-on-rails-3

我多次重复这段代码.唯一改变的是条件中的名称.

find(:all, :conditions => {:name => 'hans'}, :group => 'dato').map(&:klik)
Run Code Online (Sandbox Code Playgroud)

我正在尝试在模型中创建一些类方法.所以我可以保持干燥.

我一直在试着这个并没有用.

def self.grafdata(name)
    find(:all, :conditions => {:name => '(name)'}, :group => 'dato').map(&:klik)
end
Run Code Online (Sandbox Code Playgroud)

错误:未初始化的常量ActionView :: CompiledTemplates :: Lars

我希望能够编写Model.grafdata(Hans),Model.grafdata(Lars)

Pan*_*kos 6

我只是将它作为函数添加到您的模型中:

class Model
  def self.grafdata(name)
    where(name: name).group('dato').map(&:klik)
  end
end
Run Code Online (Sandbox Code Playgroud)

然后,您可以调用以下任一方法:

Model.grafdata('Lars')
Model.grafdata('Hans')
Run Code Online (Sandbox Code Playgroud)