Tôi muốn một phương pháp được gọi là same_url? sẽ trả về true nếu URL được chuyển trong các URL bằng nhau. URL được chuyển trong URL có thể là tùy chọn thông số băm hoặc chuỗi.Cách tốt nhất trong Rails để xác định xem hai (hoặc nhiều) URL được cung cấp (như các chuỗi hoặc tùy chọn băm) có bằng nhau không?
same_url?({:controller => :foo, :action => :bar}, "http://www.example.com/foo/bar") # => true
Các Rails Khung helper current_page? có vẻ như một điểm khởi đầu tốt nhưng tôi muốn vượt qua trong một số bất kỳ các URL.
Là một tiền thưởng thêm Sẽ tốt hơn nếu một hash của params để loại trừ từ sự so sánh có thể được thông qua vào Vì vậy, một lời gọi phương thức có thể trông giống như:.
same_url?(projects_path(:page => 2), "projects?page=3", :excluding => :page) # => true
Tôi nhận thấy trong ví dụ của bạn rằng bạn có một URL chuỗi được chuyển, nhưng bạn vẫn hy vọng tham số trang sẽ bị loại trừ. Tôi sẽ phân tích cú pháp này thành một băm bằng cách sử dụng mô-đun Định tuyến và chỉ hoạt động với các băm. – kch