2012-05-12 54 views
2

我想保留我提交的參數。Rails 3 - 提交後保持參數

在我的Rails 3.2.0應用程序,我有類似的東西:

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

在Rails 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 %>