Вот метод (закинуть его в / lib и требовать его в environment.rb):
def same_page?(a, b, params_to_exclude = {})
if a.respond_to?(:except) && b.respond_to?(:except)
url_for(a.except(params_to_exclude)) == url_for(b.except(params_to_exclude))
else
url_for(a) == url_for(b)
end
end
Если вы используете Rails до 2.0.1 , вам также необходимо добавить вспомогательный метод except
в Hash:
class Hash
# Usage { :a => 1, :b => 2, :c => 3}.except(:a) -> { :b => 2, :c => 3}
def except(*keys)
self.reject { |k,v|
keys.include? k.to_sym
}
end
end
Более поздняя версия Rails (ну, ActiveSupport) уже включает except
(кредит: Брайан Гатри )