2012-02-09 88 views
0

我的模型:動態虛擬屬性?

class Student < ActiveRecord::Base 
has_many :lack_knowledge_points, :through => :knowledge_point_infos, 
:conditions => ['knowledge_point_infos.level <= ?',10],:source => :knowledge_point 

我想這10是動態

什麼是我的最佳做法?

定義一個方法和find_by_sql?或者Rails能爲我做些什麼嗎?

+0

您可以使用範圍與lambda語法 – Fivell 2012-02-09 09:04:10

回答

0

我不清楚你想如何'水平'是動態的。無論如何,你可以在lambda中使用scope或者在模型中定義一個方法。

#If you want it to return an array 
def lack_knowledge_points(threshold) 
    knowledge_point_infos.where('level <= ?', threshold).map{|info|info.knowledge_point} 
end 
+0

沒試過 但我發現一些看起來是一樣的你:HTTP://www.railway.at/2010/03/09/named-scopes-are-dead/ 感謝您的幫助 – 2012-02-09 10:27:35