標準のブログ アプリでは、このルートを既存のルートに追加しました。
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 なしでサブドメインの下にルーティングする必要があることを、ブログ リソース メンバーのアクションにどのように伝えることができますか? これをすべて手動で行う必要がありますか? 何かが足りない気がします。