2015-01-12 3 views
0

에 존재하는 경우 위와 같이 display: none;과 함께 "invisible"이라는 CSS 클래스를 보여줍니다. 그러나 뷰를 렌더링하면 "보이지 않음"을 선언하는 줄에이 Rails 오류가 반환됩니다.레일 표시/숨기기 CSS 클래스는 매개 변수는 난 단지 매개 변수가 URL에 표시 할 때 입력을 보여주고 싶은 어디 양식을했습니다 내보기에서 URL

무엇이 잘못 되었습니까?

+0

URL을 붙여 넣기 바랍니다. – Ajay

+0

params 또는 params [: search]가 없습니다. –

+1

완전한 params 목록이 필요하지 않습니다. 컨트롤러 작업에서 params.inspect를 발생시키고 여기에 결과를 붙여 넣으십시오. – Ajay

답변

1

이것은 폼이로드 될 때 params [: search]가 nil이므로 [: filter]를 호출하려고하므로 정의되지 않은 [n]에 대한 메서드 []가 호출되기 때문입니다.

다양한 솔루션이있다, 멋진, 일부하지 너무 좋은, 좋아하는 선택 : params[:search]nil이며 호출하기 때문에

invisible = params[:search].try(:[], :value) ? '' : 'invisible' 
invisible = params[:search] && params[:search][:value] ? '' : 'invisible' 
invisible = (params[:search] || {})[:value] ? '' : 'inivisble' 
invisible = (params[:search][:value] rescue nil) ? '' : 'invisible' 
+0

감사합니다. 너 마이크! 나는 마지막 해결책을 사용하고 일했다. 혼란에 죄송합니다. 조건에있는 매개 변수의 철자가 잘못되었습니다. 이제 해결되었습니다. – mariec

-1
... 

- invisible = params[:search].try(:[], :filter).blank? ? 'invisible' : '' 

... 
0

때문이다 params[:search][:filter]

시도 :

invisible = params[:search].present? ? (params[:search][:filter].present? ? '' : 'invisible') : ''