2011-12-23 2 views
2

을 PARAMS :text_field_tag ​​내가이 내보기 중 하나에서 작동하도록하기 위해 노력하고있어

<%= text_field_tag :sources, "Test", params[:sources] %> 

하지만 전무에 대한 정의되지 않은 메서드 'stringify_keys'를 얻을 : NilClass. 코드

<%= text_field_tag :sources, "Test" %> 

잘 작동하고 코드

<%= text_field_tag :sources, params[:sources] %> 

패스의 PARAMS가 제대로하지만이없는 동안, "테스트"로 상자를 미리 채우는 (하지만 제대로 PARAMS를 통과하지 않음) 텍스트 "Test"가 필요한 곳.

누구나 구문 또는 해결 방법을 알고 있습니까?

답변

2

당신이 찾고있는 구문은 documented입니다 :

text_area_tag (이름, 내용 = 전무, 옵션 = {}) 코드의 문제는 세 가지가 주어집니다 것을

인수 text_field_tag은 세 번째가 해시가 될 것으로 예상하지만 params[:sources]nil을 제공합니다. 다른 가치를 기대하고 있습니까? params은 어디에 있으며 무엇이 포함되어 있습니까? params[:sources]가있을 때마다

<%= text_field_tag :sources, "Test", params[:sources] || {} %> 

params[:sources] || {} 빈 해시에 ({})을 평가합니다 :

당신이 params[:sources] 때로는 해시를 포함하고 다른 시간이 nil 될 것을 알고있는 경우 (설정되지 않음 예) 당신은 예를 들어 사용할 수 있습니다 오류를 피할 수있는 허위 (예 : nil).

+0

감사합니다. 제안한대로 매개 변수를 전달하지 않았습니다. 컨트롤러에서 먼저 설정 한 다음 <% = text_field_tag ​​: sources, "Test", params %>와 같이보기를 표시하고 훌륭하게 작동합니다 – tyler

관련 문제