2016-11-10 7 views
1

Ich versuche, die aktuelle URL meiner Seite und die Parameter, die damit einhergehen. Wenn ich die URL manuell einfüge, tritt der undefinierte Split-Methodenfehler nicht auf. Ich habe folgendes versucht:Nicht definierte Split-Methode bei der Verwendung von request.url

request.url

request.original_url

request.fullpath

Zugabe in

id = request.original_url 

und das Hinzufügen dieser Funktion

def original_url 
    base_url + original_fullpath 
end 

Was im Moment für mich funktioniert, ist unten, aber ich kann nicht immer dieselbe URL und Parameter haben, daher wird diese Methode später nicht funktionieren.

#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 

Jede Hilfe oder Tipps, wenn ich etwas vermisse, würde geschätzt werden.

Antwort

0

Hatte das gleiche Problem. Das Fehlen von Abfrageparametern in der URL verursachte dies.

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 

Dies löst es:

uri = URI.parse(url) 
if uri.query 
    params = CGI.parse(uri.query) 
    id = params['id'].first 
end 
Verwandte Themen