如何在redirect_to中传递参数? 我知道我们可以用这个传递id:

redirect_to :action => action_name,:id => 3

如果我想传递额外的参数,比如一些表单数据,如何实现呢?

编辑:

对于Ruby 2语法,你必须将上面的代码片段更新为:

redirect_to action: action_name, id: 3

当前回答

只需将它们附加到选项:

redirect_to controller: 'thing', action: 'edit', id: 3, something: 'else'

Would yield /thing/3/edit?其他的东西=

其他回答

可以使用flash参数将任意对象传递给模板。

 redirect_to :back, flash: {new_solution_errors: solution.errors}

然后通过散列在模板中访问它们。

<% flash[:new_solution_errors].each do |err| %>

只需将它们附加到选项:

redirect_to controller: 'thing', action: 'edit', id: 3, something: 'else'

Would yield /thing/3/edit?其他的东西=

如果你正在寻找一种方法来传递额外的URL参数(不是控制器,动作,id等),这里有一个健壮的方法来这样做:

object_path(@object, params: request.query_parameters)

这将传递utm参数或您不想丢失的任何其他附加参数。

你要定你的路,取巴仑回来。

redirect_to controller: "client", action: "get_name", params: request.query_parameters and return
redirect_to :controller => "controller_name", :action => "action_name", :id => x.id