簡體   English   中英

在 rails redirect_to 中傳遞參數

[英]Passing parameters in rails redirect_to

我們如何在rails中的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'

會產生/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')

如果您有一些表單數據,例如發送到 home#action,現在您想將它們重定向到 house#act,同時保留參數,您可以這樣做

redirect_to act_house_path(request.parameters)

您可以使用 flash 參數將任意對象傳遞給模板。

 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

路由文件

 match 'controller_name/action_name' => 'controller_name#action_name', via: [:get, :post], :as => :abc

您要使用參數重定向的任何控制器如下所示:

redirect_to abc_path(@abc, id: @id), :notice => "message fine" 

路由您的路徑,並獲取params ,然后返回:

redirect_to controller: "client", action: "get_name", params: request.query_parameters and return

從 Rails 6 開始,您可以簡單地調用redirect_to后跟您希望重定向到的路徑,例如home_path ,然后傳遞是鍵值對的散列。

例子:

redirect_to home_path(name: 'Jason', needs: 'help with rails', help: true)

在此之后,您將能夠從 params 哈希中檢索這些值。

前任

params[:name]

檢索字符串“傑森”

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM