URI.escape と CGI.escape の違いは何ですか? この投稿はCGI::escape
、URI.escape が廃止されたため、URI.escape を に置き換えることについて話していました。私たちのrails 3.2
アプリでは、URI.escape
に使用されましたredirect_to
。Rails アプリの 2 つのケースを次に示します。
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 が完全に廃止されるのはいつですか?