Rails 3 - 提交后保留params

时间:2012-05-12 16:11:29

标签: ruby-on-rails parameters ruby-on-rails-3.2

我希望在提交之后保留我的参数。

在我的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 %>

我想在class_code之后保留我的参数(subject_namef.submit)。我怎么能这样做?

2 个答案:

答案 0 :(得分: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 %>

答案 1 :(得分:5)

要将所有参数存储在一个字段中,您可以使用:

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

然后你可以使用:

在控制器中访问它们
parameters = parse_nested_query(params[:parameters])