2010-04-28 5 views
0

레일즈에서 며칠 동안 문제를 겪어 왔지만 여전히 해결책을 찾지 못했습니다. 그걸 도와 줄 수있어?form_tag를 사용하여 매개 변수를 업데이트하는 방법

문제점 : search_string 항목을 params 구조에 넣는 검색 상자가 있습니다. 나는 그것을 위해 form_tag를 사용하고 잘 동작한다. search_string을 결과를 필터링, START_DATE : 나는 예를 들어, 추가 및 기타 PARAMS에게 (다른보기) 키 - 값을 업데이트 할 때

<% form_tag :controller=> 'items', :action => 'find' do %> 
    <%= text_field_tag :search_string, params[:search_string] %> 
<% end %> 

문제

입니다. 여기 코드는 내가보기에 사용하는 것이 냈다됩니다 : [: 시작일] = 내가 처음 "에이프릴 '제출'버튼을 클릭하면

<% form_tag :controller=> "items", :action => "find", :params => params do %> 
    <%= hidden_field_tag :date_start, '2010-04-01' %> 
    <%= submit_tag 'April' %> 
<% end %> 

<% form_tag :controller=> "items", :action => "find", :params => params do %> 
    <%= hidden_field_tag :date_start, '2010-03-01' %> 
    <%= submit_tag 'March' %> 
<% end %> 

, 다음 PARAMS가 제대로 (컨트롤러에 전달 즉 PARAMS있다 '4 월'). 그러나 "March"버튼을 나중에 클릭하면 params [: start_date]가 업데이트되지 않습니다. 나는 이것이 멍청한 초보자 실수라고 생각한다. 그러나 나는 form_tag를 적절하게 사용하는 방법을 알 수 없다. 내가 뭔가 일하는 중이라고 말해 줄 수 있니? 그렇지 않으면 form_tag를 사용하여 매개 변수를 업데이트하는 가장 좋은 방법은 무엇입니까? 대단히 감사드립니다.

미켈

+0

start_date 또는 date_start를 찾으십니까? – tadman

답변

0

당신이 수행 할 수 있습니다 것은 대신 강제 병합의 라인을 따라 뭔가 매개 변수를 : 당신이 실수로 같은 매개 변수의 두 가지를 제출하고 기회가있다

<% form_tag :controller=> "items", :action => "find", :params => params.merge(:date_start => '2010-03-01') do %> 
    <%= submit_tag 'March' %> 
<% end %> 

을 그 중 첫 번째가 선택되었지만 "첫 번째"가 명확하게 정의되어 있지 않기 때문에 일관성없는 결과가 발생할 수 있습니다.

로그 파일에서 두 가지 양식에서받은 매개 변수를 확인하십시오.

+0

친애하는 태만가, 팁은 환상적으로 작동합니다! 고마워요! 그러나 HTTP 요청에서 HTTP 요청까지 많은 수의 키 - 값 쌍을 전달하는 것을 다루는 "최상의 방법"이 있는지 궁금합니다. 가장 좋은 방법은 params를 사용하는 것입니까? – mgfernan

+0

때로는 이것을 수행하는 방법을 찾지 못했지만 매개 변수를 숨겨진 필드로 변환해야 할 때도 있습니다. 기술적으로 '컨트롤러', '액션'및 '형식'을 보낸 매개 변수에서 제외하려고하지만, 이것이 항상 쉽게 달성되는 것은 아닙니다. 할 수있는 일은 요청 사이의 매개 변수를 다시 인코딩하는 도우미 메서드를 작성하는 것입니다. – tadman

관련 문제