2012-02-09 4 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을 정의 하시겠습니까? 아니면 레일즈가 나에게 뭔가를 할 수 있을까?

+0

당신이 – Fivell

답변

0

나는 '레벨'을 어떻게 동적으로 할 것인지 명확하지 않습니다. 어쨌든 람다를 사용하여 범위를 사용하거나 모델에서 메서드를 정의 할 수 있습니다.

#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/ 도움 주셔서 감사합니다. –