Exi*_*iRe 3 parameters ruby-on-rails ruby-on-rails-3.2
我想继续保留我的参数.
在我的Rails 3.2.0应用程序中,我有类似的东西:
http://0.0.0.0:3000/journals?class_code=11v&subject_name=Math
Run Code Online (Sandbox Code Playgroud)
我有形式:
<%= form_for @lesson, :html => {:class => "form-horizontal"} do |f| %>
<%= field_set_tag do %>
....
<%= f.submit "Create", :class => "btn btn-large btn-success" %>
<% end %>
<% end %>
Run Code Online (Sandbox Code Playgroud)
我希望保留我的参数(class_code和subject_name)f.submit.我怎样才能做到这一点?
隐藏的领域
....
<%= 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 %>
Run Code Online (Sandbox Code Playgroud)
但是 - 如果这些是您的模型的属性,则在控制器的新操作中分配它们
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 %>
Run Code Online (Sandbox Code Playgroud)
小智 5
要将所有参数存储在一个字段中,可以使用:
<%= hidden_field_tag :parameters, request.query_string %>
Run Code Online (Sandbox Code Playgroud)
然后,您可以使用以下命令在控制器中访问它们:
parameters = parse_nested_query(params[:parameters])
Run Code Online (Sandbox Code Playgroud)