에서 정의되지 않기 때문에이
routes.rb처럼
Frontend::Application.routes.draw do
DynamicRouter.load request
end
응용 프로그램/모델/dynamic_router.rb는
class DynamicRouter
def self.load request
current_site = Site.find_by_host(request.host)
Frontend::Application.routes.draw do
current_site.routes do |route|
get "#{route.match}", to: "#{route.to}"
end
end
end
end
이 나던 작품은 가능한 soluction은이다 routes.rb에 기본 규칙을 만들고 도메인에 따라 경로를 변형 할 수있는 랙 미들웨어를 추가하십시오.
# routes.rb
get '/category/:id', :to => 'categories#show'
미들웨어에서는 응용 프로그램이 라우터 계층에 도달하기 전에 도메인이 '.es'와 일치하면 'categoria/: id'에서 '/ category/: id'로 경로를 변환 할 수 있습니다. 랙 미들웨어에
더 : http://guides.rubyonrails.org/rails_on_rack.html
그래서, 기본적으로, 당신은 모든 경로를 지원하려는에서 다시
잡아 그것을 아래 코드? –
나는 각 웹 사이트를위한 동적 경로를 원합니다. 우리 사이트 중 하나에 대해/category/: id를 호출하고 싶으면 또 하나는/category/: 슬러그해야합니다. routes.rb에서 request 객체를 모델 방법, 나는 이미 나머지를 할 수있는 방법을 알고있다 – Mik
/category/: id와/category/: slug는 같은 경로이다. 유일한 차이점은 동적 부분은 params [: id]에 저장되고 두 번째 부분은 params [: slug] –