0

URI.escape 和 CGI​​.escape 有什么区别?这篇文章正在讨论将 URI.escape 替换CGI::escape为 URI.escape 已过时。在我们的rails 3.2应用程序中,URI.escape用于redirect_to. 这是我们的 Rails 应用程序中的两个案例:

URI.escape(SUBURI + '/user_menus')
URI.escape(SUBURI + '/authentify/signin')

以下是中的比赛routes.rb

match '/signin',  :to => 'authentify::sessions#new'
match '/user_menus', :to => 'user_menus#index'
match '/view_handler', :to => 'authentify::application#view_handler'

替换为 后CGI::escape,出现错误:

 ERROR URI::InvalidURIError: the scheme http does not accept registry part:

删除后CGI::escape,错误消失。另一个例子:

redirect_to CGI::escape(SUBURI + "/authentify/view_handler?index=0&msg=Insufficient Access Right! for action=#{action} and resource=#{resource}")

用 CGI::escape 替换后,出现错误(如上)。

上面使用 CGI::escape 有什么问题?URI.escape 的确切等价物是什么?? 还有什么时候 URI.escape 会被完全淘汰?

4

0 回答 0