2014-03-29 3 views
3

내 양식에 필드가 많으며 양식을 제출할 때 url과 같은 빈 매개 변수가 많이 표시됩니까? a = & b = & c = 및 내 has_scope 모델 이 params를 사용하고 싶다고 생각하지만, null 값을 가지고 있지만 이것은 잘못된 것입니다. 내 모델과 컨트롤러의레일 조건이있는 경우 has_scope

부 :

if vehicle_manufacturer_id.present? 
has_scope :by_manufacturer 
end 

어떻게 바로 필드 presense 확인하는 것입니다

어떻게 내가 좋아하는 뭔가를 쓸 수 있을까? 그리고 어디에서 어떻게 쓸 것인가?

답변

2

Has_scope는 : if 조건을 사용하여 범위를 사용해야 할 때를 결정할 수 있습니다. 예 :

has_scope :by_manufacturer, if: vehicle_manufacturer_id.present? 

또는 범위 자체에 조건 추가 : 나는 지금 그것을 테스트 할 수 없습니다,하지만이 작업을해야

scope :by_manufacturer, -> vehicle_manufacturer_id { where(:vehicle_manufacturer_id => vehicle_manufacturer_id) if vehicle_manufacturer_id.present? } 

합니다. 그러나, 나는 당신의 문제가 더 덥지 않다고 생각하지 않거나 당신이 범위를 부르지 않는다. URL 매개 변수는보기에서 컨트롤러로 전달됩니다. 스코프는 특정 조건에서 어떤 레코드가 반환되는지를 결정할 뿐이며, 어떤 URL 매개 변수가 표시되어야하는지에 대해서는 말하지 않습니다.

+0

예를 들어 .compact() 감사합니다. – brabertaser19

+0

알겠습니다 ... 그냥 작동하지 않습니다.) – brabertaser19

+0

컴팩트와 함께 사용하는 방법 has_scope : – brabertaser19

관련 문제