2010-04-09 2 views
0

ID 열 이외의 연결된 모델의 특성을 사용하여 명명 된 범위를 작동시키는 데 문제가 있습니다.관련 모델의 속성에 scope라는 변수를 사용하는 방법 ID 이외

저는 city_id 열이있는 회사 모델이 있습니다. 또한 이름 열이있는 City 모델도 있습니다.

내가 has_scope 보석을 사용하도록 않도록 다음과 같은 편안한 URL을 얻고 싶은과가 마른 체형의 컨트롤러

http://localhost:3000/firms?by_city=Dublin 

그러나 본 코드를 사용하여 난 단지 도시 ID를 삽입 할 수 있습니다

http://localhost:3000/firms?by_city=546 

은 여기 내 named_route

class Firm < ActiveRecord::Base  
named_scope :by_city, proc {|city| { :conditions => { :city => city } } } 
end 

수정하는 방법에 대한 모든 아이디어입니다 명명 된 범위의 o 이름을 사용하여 URL을 생성하는 것은 크게 감사하겠습니다! 당신은 기업 클래스에 belongs_to를 추가하고 쿼리에있는 도시의 이름을 얻을 수 있도록 다음 명명 된 범위에 대한 도시에 가입 추가해야합니다

감사합니다,

답변

2

. | by_city, 람다 {| CITY_NAME : -이

class Firm < ActiveRecord::Base 
    belongs_to :city 
    named_scope :by_city, lambda {|city_name| {:joins => :city, :conditions => {:city => {:name => city_name}}}} 
end 
+0

감사 비슷해이 작동하지만 약간의 수정을 named_scope이 필요 {: joins => : city, : conditions => {: cities => {: name => city_name}}}} –