[英]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.