ルーティングに関する問題があります。これを進める方がいいですか?
http://localhost:3000/events?category=popular&city=london&country=united-kingdom
は現在、そのわずかなリソースを見て::イベント(イベントコントローラ、indexアクションである)、およびindexアクションで私のルートは現在このように見えます。私はif
条件をたくさん持っています。特に、アプリケーションがクエリ文字列に基づいて読み込む部分文字列を判断する必要があるとき。
これをリファクタリングするには良い方法がありますか?私はURLのクエリ文字列の大ファンではありません。そして、このようなものはルーティングで解決することができます。ちょうど正しい方向を探しています。以下のようなURL持って探しています:具体的には、181ページの
/events/london
/events/london/popular
/events/london/united-kingdom
/events/united-kingdom
/events/united-kingdom/popular
/events/london/united-kingdom/popular
Anti Patterns bookは、別々のコントローラを作成示唆しています。それはコードをさらに整理し、それを依然として恒久的に保ちます。 が本当には、クエリ文字列の形式にすることになっ
match 'events/:city', :controller => 'events/cities', :action => 'index', :as => 'by_city', :via => :get
match 'events/:city/:category', :controller => 'events/cities_and_categories', :action => 'index', :as => 'by_city_and_category', :via => :get
match 'events/:city/:country', :controller => 'events/cities_and_countries', :action => 'index', :as => 'by_city_and_country', :via => :get
match 'events/:country', :controller => 'events/countries', :action => 'index', :as => 'by_country', :via => :get
match 'events/:country/:category', :controller => 'events/countries_and_categories', :action => 'index', :as => 'by_country_and_category', :via => :get
match 'events/:city/:country/:category', :controller => 'events/cities_and_countries_and_categories', :action => 'index', :as => 'by_city_and_country_and_category', :via => :get
OR、フィルタ処理されている用語:理論的には
、私はそれがこのような何かを示唆していると思いますか?
あなたには、より良いアプローチがあります。言及してください。