如何在Rails中使用redirect_to传递参数? 我知道我们可以使用以下方法传递id:
redirect_to :action => action_name,:id => 3
如果我想传递额外的参数,例如一些表单数据,应该如何实现?编辑:
对于Ruby 2语法,您需要更新上面的代码片段:
redirect_to action: action_name, id: 3
如何在Rails中使用redirect_to传递参数? 我知道我们可以使用以下方法传递id:
redirect_to :action => action_name,:id => 3
如果我想传递额外的参数,例如一些表单数据,应该如何实现?redirect_to action: action_name, id: 3
只需将它们附加到选项中即可:
redirect_to controller: 'thing', action: 'edit', id: 3, something: 'else'
将会得到 /thing/3/edit?something=else
如果你正在使用RESTful资源,你可以执行以下操作:
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')
redirect_to act_house_path(request.parameters)
redirect_to act_house_path(request.parameters.merge(key: "value"))
。 - GregTredirect_to act_house_path(request.parameters.except(:authenticity_token, :controller, :action, :utf8, :commit)
。 - mr i.o redirect_to :back, flash: {new_solution_errors: solution.errors}
然后通过哈希表在模板中访问它们。
<% flash[:new_solution_errors].each do |err| %>
redirect_to new_user_path(:id => 1, :contact_id => 3, :name => 'suleman')
如果您想传递额外的URL参数(不是控制器、操作、ID等),这里有一种强大的方法:
object_path(@object, params: request.query_parameters)
这将传递utm参数或任何其他您不想丢失的附加参数。
redirect_to :controller => "controller_name", :action => "action_name", :id => x.id
将您的路径路由,获取params
,并返回:
redirect_to controller: "client", action: "get_name", params: request.query_parameters and return
routes.rb
match 'controller_name/action_name' => 'controller_name#action_name', via: [:get, :post], :as => :abc
下面是您希望带参数重定向的任何控制器:
redirect_to abc_path(@abc, id: @id), :notice => "message fine"
从Rails 6开始,您可以简单地调用redirect_to
,然后跟随您希望重定向到的路径,例如home_path
,然后传递键值对的哈希表。
示例:
redirect_to home_path(name: 'Jason', needs: 'help with rails', help: true)
params[:name]
可以检索字符串'Jason'。