2
내 기존 경로에이 경로를 추가 한 표준 블로그 응용 프로그램에서

:레일 하위 도메인 라우팅이 예상대로 작동하지

match '', to: 'blogs#show', constraints: { subdomain: /.+/ } 

그리고이 있었다 /되어 내 기존 경로 :

resources :blogs do 
    member { get :settings } 
    member { get :stats } 
    member { match ':year/:month/:day/:article_id', to: 'blogs#show_article', :constraints => { year: /\d{4}/, month: /\d{2}/, day: /\d{2}/ } } 
end 

내 컨트롤러에서 @blog = Blog.find (request.subdomain)을 사용하면 간단하게 ID를 사용합니다. 나중에 블로그 슬러그 또는 추가 도메인 속성을 사용합니다.

http://17.lvh.me:3000은 블로그 17을 표시합니다. 그러나 내 회원의 작업은 예상대로 라우팅되지 않습니다. 블로그 하위 도메인에 있기 때문에 나는 http://8.lvh.me:3000/settings을 원하지만 http://17.lvh.me:3000/blogs/17/settings 만 작동합니다.

그렇다면 블로그 리소스 구성원에게 여분의/blogs/: id가없는 하위 도메인에서 라우팅해야한다는 것을 어떻게 알릴 수 있습니까? 이 모든 작업을 수동으로 수행해야합니까? 나는 뭔가를 놓치고있는 것처럼 느낍니다.

scope '/' do 
with_options :conditions => {:subdomain => /.+/}, :controller => :blogs do |site| 
    site.match '', :action => :show 
    site.get '/settings', :action => :settings 
    site.get '/stats', :action => :stats 
    site.match ':year/:month/:day/:article_id', to: 'blogs#show_article', :constraints => { year: /\d{4}/, month: /\d{2}/, day: /\d{2}/ } 
end 
end 

당신은 컨트롤러 액션의 각 Blog.find(request.subdomain)을해야합니다 :

답변

1

이 시도해보십시오.

P. 나는 이것이 a good theoretical exercise in using subdomains in Rails 인 것을 안다. 그러나 나는 개인적으로 clean URLs를 선호한다.

+0

답변 해 주셔서 감사합니다. 나는 어떻게 든 그것을 나의 기존의 길과 함께 일하게 할 수 없었다. 이제는 하위 도메인없이 끝내게됩니다. 나중에 접근 할 것입니다. –

관련 문제