FriendlyID постоянно показывает дублированный контент для обоих / slug и / 1. Другими словами, правильная страница загружается для дружественного слага (/ new-york), но она загружает то же содержимое для старого недружественного слага (/11).
Вот моя текущая конфигурация:
#config/routes.rb
resources :groups, path: ''
get 'groups/:id' => redirect("/%{id}")
#app/models/group.rb
class Group < ActiveRecord::Base
extend FriendlyId
friendly_id :name, use: [:slugged, :finders]
end
#app/controllers/groups_controller.rb
def show
@group = Group.friendly.find(params[:id])
end
В качестве потенциального обходного пути я обнаружил, что установка этого в моем контроллере перенаправляет плохих слагов (/ 11) на хорошие слагов (/ new-york), но по многим причинам это кажется неправильным (маршрутизация вне маршрутов. Rb , вероятные непредвиденные последствия, комплексное решение для общей проблемы = вероятно, не правильное).
if request.path != group_path(@group)
return redirect_to @group, :status => :moved_permanently
end
Как правильно сделать, чтобы FriendlyID (1) перенаправлял: id вызывал: slug или (2) просто 404 их?