Ich möchte eine Methode namens same_url? das wird wahr zurückgeben, wenn die übergebenen URLs gleich sind. Die übergebenen URLs können entweder params options hash oder strings sein.Was ist der beste Weg in Rails festzustellen, ob zwei (oder mehr) gegebene URLs (als Strings oder Hash-Optionen) gleich sind?
same_url?({:controller => :foo, :action => :bar}, "http://www.example.com/foo/bar") # => true
Die Rails-Framework Helfer current_page? scheint wie ein guter Ausgangspunkt, aber ich würde in einer beliebigen Anzahl von URLs weitergeben möchten.
Als zusätzliche Bonus, es wäre gut, wenn ein Hash von params aus dem Vergleich ausschließen könnte in weitergegeben wird also ein Methodenaufruf könnte wie folgt aussehen:.
same_url?(projects_path(:page => 2), "projects?page=3", :excluding => :page) # => true
Ich merke in Ihrem Beispiel haben Sie eine Zeichenfolge URL übergeben, aber Sie immer noch erwarten, dass der Seitenparameter ausgeschlossen werden. Ich würde dies mit dem Routing-Modul zu einem Hash analysieren und nur mit Hashes arbeiten. – kch