簡體   English   中英

活動記錄模型無法識別視圖中的方法

[英]Active Record model not recognizing method in view

這是一個非常簡單的問題。 我正在觀看一個railscast,其中在模型中將方法定義為:

def self.nameoffunction
   ...
end

然后,他可以在其視圖中使用Model.nameoffunction引用該方法。

這是從2010年開始的,所以我猜測此后發生了一些變化,因為當我嘗試在模型中創建函數時,嘗試在視圖中引用它時會得到未定義的方法。

我希望按照以下方式在模型中創建一個方法:

def blahblah(variable)
    a = select('column').where('...variable referenced here...').limit(2) 
    b = []
    b.push(a[0]['column'])
    b.push(a[1]['column'])
    return b.sum
end

當我進入控制台並鍵入Model.blahblah未定義的錯誤。

所以我的問題是,何時可以使用Model.blahblah的方法,何時必須使用Model.find_by_id(3)類的對象?

您需要添加self. 所以它是一個類方法,而不是您當前擁有的實例方法。

def self.blahblah(variable)
    a = select('column').where('...variable referenced here...').limit(2) 
    b = []
    b.push(a[0]['column'])
    b.push(a[1]['column'])
    return b.sum
end

另一種選擇是執行以下操作:

class << self
  def blahblah(variable)
    a = select('column').where('...variable referenced here...').limit(2) 
    b = []
    b.push(a[0]['column'])
    b.push(a[1]['column'])
    return b.sum
  end
end

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM