2012-05-12 4 views
2

나는 제출 후 내 매개 변수를 유지하고 싶습니다. 내 레일 3.2.0 응용 프로그램에서레일 3 - 제출 후 params 유지

나는 그런 일이 :

http://0.0.0.0:3000/journals?class_code=11v&subject_name=Math 

을 그리고 난 형태를 가지고 :

<%= form_for @lesson, :html => {:class => "form-horizontal"} do |f| %> 
    <%= field_set_tag do %> 
    .... 
    <%= f.submit "Create", :class => "btn btn-large btn-success" %> 
    <% end %> 
<% end %> 

내가 f.submit 후 내 PARAMS (class_codesubject_name)를 유지하려는. 내가 어떻게 할 수 있니?

답변

4

의 새로운 행동에 할당 사용 :

<%= hidden_field_tag :parameters, request.query_string %> 

그리고 컨트롤러를 사용하여 액세스 할 수 있습니다 :

parameters = parse_nested_query(params[:parameters]) 
+0

레일즈 4에서는 어떻게'Rack :: Utils.parse_nested_query'를 지정해야합니까? –

5

숨겨진 필드

.... 
    <%= hidden_field_tag :class_code, params[:class_code] %> 
    <%= hidden_field_tag :subject_name, params[:subject_code] %> 
    <%= f.submit "Create", :class => "btn btn-large btn-success" %> 
<% end %> 

-하지만 사람들이 모델의 속성이있는 경우, 당신은 수, 하나 개의 필드에있는 모든 매개 변수를 저장하려면 컨트롤러

def new 
    @lesson = Lesson.new(:class_code => params[:class_code], :subject_code => params[:subject_code]) 
end 

# in this case the view code is slightly different 
<%= f.hidden_field :class_code %> 
<%= f.hidden_field :subject_code %>