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