2016-11-10 4 views
1

私のページの現在のURLとそれに付随するパラメータを取得しようとしています。手動でURLを入力すると、未定義の分割方法のエラーは発生しません。request.urlを使用しているときの未定義の分割方法

request.url

request.original_url

request.fullpath

この機能

def original_url 
    base_url + original_fullpath 
end 

id = request.original_url 

に追加し、追加:私は次のことを試してみました0

現在私のために働くものは以下の通りですが、毎回同じURLとパラメータを使用することができないので、このメソッドは後で動作しません。

#parse current url 
    #what I would like below in comment 
    #id = request.original_url 
    url = "http://127.0.0.1:3000/reviews/new?id=2" 
    uri = URI.parse(url) 
    params = CGI.parse(uri.query) 
    id  = params['id'].first 

何か不足している場合のヒントやヒントがあれば幸いです。

答えて

0

同じ問題がありました。 URLにクエリパラメータがないと、それが原因でした。

url = "http://127.0.0.1:3000/reviews/new" # no query params 
uri = URI.parse(url) 
query = uri.query # nil 
params = CGI.parse(query) # Undefined split Exception 

これは、それを解決:

uri = URI.parse(url) 
if uri.query 
    params = CGI.parse(uri.query) 
    id = params['id'].first 
end 
関連する問題