我们如何在rails中的redirect_to中传递参数?我知道我们可以使用这个传递id:
redirect_to :action => action_name,:id => 3
Run Code Online (Sandbox Code Playgroud)
如果我想传递一些表格数据等附加参数怎么实现呢?
编辑:
对于Ruby 2语法,您必须将上面的代码段更新为:
redirect_to action: action_name, id: 3
Run Code Online (Sandbox Code Playgroud)
Mic*_*cot 166
只需将它们附加到选项:
redirect_to controller: 'thing', action: 'edit', id: 3, something: 'else'
Run Code Online (Sandbox Code Playgroud)
会产量 /thing/3/edit?something=else
Soh*_*han 81
如果您使用的是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')
Run Code Online (Sandbox Code Playgroud)
v4r*_*v4r 45
如果您有例如发送到家里#行动某种形式的数据,现在要重定向他们的房子#的行为,同时保持参数,你可以这样做
redirect_to act_house_path(request.parameters)
小智 38
您可以使用flash参数将任意对象传递给模板.
redirect_to :back, flash: {new_solution_errors: solution.errors}
Run Code Online (Sandbox Code Playgroud)
然后通过哈希在模板中访问它们.
<% flash[:new_solution_errors].each do |err| %>
Run Code Online (Sandbox Code Playgroud)
Muh*_*man 29
redirect_to new_user_path(:id => 1, :contact_id => 3, :name => 'suleman')
Run Code Online (Sandbox Code Playgroud)
确定您的路径,然后选择params
,然后返回:
redirect_to controller: "client", action: "get_name", params: request.query_parameters and return
Run Code Online (Sandbox Code Playgroud)
小智 6
redirect_to :controller => "controller_name", :action => "action_name", :id => x.id
Run Code Online (Sandbox Code Playgroud)
小智 5
路由文件
match 'controller_name/action_name' => 'controller_name#action_name', via: [:get, :post], :as => :abc
Run Code Online (Sandbox Code Playgroud)
您要使用参数重定向的任何控制器如下所示:
redirect_to abc_path(@abc, id: @id), :notice => "message fine"
Run Code Online (Sandbox Code Playgroud)
如果您正在寻找一种传递其他URL参数(而不是控制器,操作,ID等)的方法,则可以使用以下可靠的方法:
object_path(@object, params: request.query_parameters)
Run Code Online (Sandbox Code Playgroud)
这将传递utm参数或您不想丢失的任何其他附加参数。
从 Rails 6 开始,您只需调用 redirect_to
您希望重定向到的路径,例如home_path
,然后传递键值对的哈希值。
例子:
redirect_to home_path(name: 'Jason', needs: 'help with rails', help: true)
Run Code Online (Sandbox Code Playgroud)
之后,您将能够从 params 哈希中检索这些值。
前任
params[:name]
检索字符串“Jason”
归档时间: |
|
查看次数: |
200784 次 |
最近记录: |