如何在rails中的redirect_to參數中傳遞參數? 我知道我們可以用這個傳遞ID:在rails中傳遞參數redirect_to
redirect_to :action => action_name,:id => 3
如果我想通過更多的參數,如某種形式的數據是如何實現的呢?
編輯:
紅寶石2語法,你必須更新代碼段以上:
redirect_to action: action_name, id: 3
如何在rails中的redirect_to參數中傳遞參數? 我知道我們可以用這個傳遞ID:在rails中傳遞參數redirect_to
redirect_to :action => action_name,:id => 3
如果我想通過更多的參數,如某種形式的數據是如何實現的呢?
編輯:
紅寶石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')
您可以使用flash參數將任意對象傳遞給模板。
redirect_to :back, flash: {new_solution_errors: solution.errors}
然後通過哈希在模板中訪問它們。
<% flash[:new_solution_errors].each do |err| %>
這是不好的做法。此方法濫用Flash對象,其用於用戶消息傳遞。更好的做法是在會話中存儲任意參數,然後在完成時從會話中清除這些參數。 – GregT 2013-04-22 22:11:05
redirect_to :controller => "controller_name", :action => "action_name", :id => x.id
你能否提供一些解釋。只是一個代碼示例是不夠的。 – simonmenke 2012-10-29 11:02:51
如果您有例如發送到家裏#行動某種形式的數據,現在要重定向他們的房子#的行爲,同時保持參數,你可以做到這一點
redirect_to act_house_path(request.parameters)
你知道你將如何結合這一點,加上新的參數?即request.parameters,(或+):this =>: – 2012-09-11 13:15:17
您可以使用合併方法。例如:'redirect_to act_house_path(request.parameters.merge(key:「value」))' – GregT 2013-04-22 22:11:39
您也可以使用except方法在合併後排除不需要的參數:'redirect_to act_house_path(request.parameters.except(:authenticity_token,:控制器,:action,:utf8,:commit)' – 2016-06-16 21:18:09
redirect_to new_user_path(:id => 1, :contact_id => 3, :name => 'suleman')
的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"
什麼是你真正想實現什麼?你有沒有考慮在會話中保存數據? – 2009-09-16 01:41:02
你所要求的是不可能的 - 如果你正在做一個重定向,它必須是一個你重定向到的GET請求,所以你的用戶總是可以看到這些參數。你應該把東西存儲在會話中。 – GregT 2013-04-22 22:13:22