我的模特:
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 :(得分:0)
我不清楚你希望'水平'是如何动态的。无论如何,您可以将范围与lambda一起使用或在模型中定义方法。
#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