ruby on rails - redirect_back - Pasar parámetros en rails redirect_to
routes in ruby on rails (7)
Añádalos a las opciones:
redirect_to controller: ''thing'', action: ''edit'', id: 3, something: ''else''
Haría /thing/3/edit?something=else
¿Cómo pasamos parámetros en redirect_to en rieles? Sé que podemos pasar la identificación usando esto:
redirect_to :action => action_name,:id => 3
Si quiero pasar parámetros adicionales como algunos datos de formulario, ¿cómo lograrlo?
EDITAR:
Para la sintaxis de Ruby 2, debes actualizar el fragmento de arriba para:
redirect_to action: action_name, id: 3
Puede pasar objetos arbitrarios a la plantilla con el parámetro flash.
redirect_to :back, flash: {new_solution_errors: solution.errors}
Y luego acceda a ellos en la plantilla a través del hash.
<% flash[:new_solution_errors].each do |err| %>
Si está utilizando recursos RESTful, puede hacer lo siguiente:
redirect_to action_name_resource_path(resource_object, param_1: ''value_1'', param_2: ''value_2'')
or
#You can also use the object_id instead of the object
redirect_to action_name_resource_path(resource_object_id, param_1: ''value_1'', param_2: ''value_2'')
or
#if its a collection action like index, you can omit the id as follows
redirect_to action_name_resource_path(param_1: ''value_1'', param_2: ''value_2'')
#An example with nested resource is as follows:
redirect_to edit_user_project_path(@user, @project, param_1: ''value_1'', param_2: ''value_2'')
Si tiene algunos datos de formulario, por ejemplo, enviados a la acción de inicio de la página, ahora quiere redirigirlos a la acción # de la casa mientras mantiene los parámetros, puede hacer esto
redirect_to act_house_path(request.parameters)
routes.rb
match ''controller_name/action_name'' => ''controller_name#action_name'', via: [:get, :post], :as => :abc
Cualquier controlador que desee redirigir con parámetros se proporciona a continuación:
redirect_to abc_path(@abc, id: @id), :notice => "message fine"
redirect_to :controller => "controller_name", :action => "action_name", :id => x.id
redirect_to new_user_path(:id => 1, :contact_id => 3, :name => ''suleman'')