with redirect_to redirect_back rails ruby-on-rails

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'')