2017-05-09 46 views
0

在我的Rails 4.2.0應用程序這段代碼...如何解決Rails中不推薦使用的URL幫助器操作?

link_to "Show projects as CSV", projects_path(params.merge(:format => :csv)) 

...產生在日誌中以下警告:

棄用警告:調用具有字符串鍵控制器網址助手,行爲已被棄用。改用符號。

這怎麼解決?

+1

可能與此有關:https://github.com/rails/ rails/issues/18609 – Severin

回答

1

你真的需要移動一些參數嗎? 如果沒有,那麼這應該工作

link_to "Show projects as CSV", projects_path(format: "csv") 

你的問題是你的幫手params爲引用的ActionController :: params對象,像:

<ActionController::Parameters {"controller"=>"pages", "action"=>"home"} permitted: false> 

你不應該需要添加所有的像這樣的參數,只需傳遞格式:「csv」就可以工作。

如果你有,你需要通過在鏈接到移動任何額外的參數,可以你可以做線沿線的東西:

link_to "Show projects as CSV", projects_path(foo: params[:foo], bar: params[:bar], format: "csv") 
+0

允許任何參數被回顯是一種非常糟糕的做法,可以被利用。 – max

+0

令人驚訝的是'link_to「將項目顯示爲CSV」,projects_path(格式:「csv」)'真的有用!奇怪,我沒有使用它在第一個地方。 – Tintin81

1

我想,你不應該通過請求(參見params.merge和跨站腳本)之間的參數,可以而是切片您需要爲您的新要求PARAMS和合並新:

@csv_prms = params.slice(:param1, :param2).merge(format: :csv) 
相關問題