2009-06-01 3 views
3

나는 2.0.3에서 필터를 재구성의 변화에 ​​이름 필터에 의해 그러나 때문에 모델이 내가 찾을 때, 내 filters_controller.rb에서모델명 충돌

ActionController::Filters::Filter (class) 

와 충돌 필터

Filter.find(:id) 

내 모델 클래스 필터가 아닌 ActionController::Filters::Filter 클래스를 infering되는 레일로

. 내 모델의 이름을 바꾸는 것 이외의 다른 방법이 있습니까?

BTW : 내 필터 객체를로드 할 때 ActiveRecord::Base::Filter.find(:id)을 사용하면 레일스가 언로드/상수 재로드를 시도 할 때이를 수행하여 예상치 못한 영향이 있는지 확실하지 않습니다.

미리 감사드립니다.

답변

4

이 문제를 해결하는 가장 안전한 방법은 모델의 이름을 바꾸는 것입니다. 그렇지 않으면 나중에 디버깅하기가 어려울 때 "영리한"위험에 빠져서 물린 상태가됩니다.

+2

감사합니다. _Kevin. 사실 저는 ruby-forum.org에서 다음과 같은 피드백을 받았습니다. 루비가 ActionController :: Filters :: Filter 클래스가 아닌 내 클래스를 찾도록 강제하는 Filter.find()를 사용하면. 나는 그것의 안전하다고 생각한다. –

1

나는 귀하의 의견을 거의 놓쳤으므로 자신의 질문에 답하십시오.

::Filter.find()