Rails: Как установить параметры на некоторых путях с областью действия и установить их равными нулю на некоторых других? - PullRequest
2 голосов
/ 26 мая 2011

Я использую некоторые маршруты с областями действия, а некоторые без.См. Ниже.

      resources :cities

      resources :categories

      devise_for :clients
      namespace :clients do
          resources :account
          resources :dashboard
          resources :offers
      end

      scope "/:current_city" do 
          scope "/:current_category" do
              match 'articles/last_articles' => 'articles#index_last_articles', :as => "last_articles"
              resources :articles do
                  resources :comments
              end
          end
      end
      root :to => "home#index"

Я использую эти параметры: current_city и: current_category, и это дает мне URL-адрес типа http://localhost:3000/warszawa/all/articles/last_articles, когда я захожу на статьи.

** ПРОБЛЕМА **

У меня сейчастакая проблема, что если я нажму на link_to towns_path или root_path, то эти два параметра будут добавлены в URL как http://localhost:3000/?current_category=all&current_city=warszawa.

. Я не хочу, чтобы эти два параметра разрушали красоту моего URL: o(

Единственный способ, который я нашел, - передать :current_city => nil, :current_category => nil для каждой ссылки, но это очень тяжело. Я пробовал тоже самое, но на своих маршрутах, которые работают для обычных ресурсов, но не для пространств имен, root_path, devise_for маршрутов, и, честно говоря, это выглядит ужасно в маршрутах. rb.

** ВОПРОСЫ **

  • Во-первых, я не понимаю, почему эти параметры передаются везде, если я задаю их только в разделе с областью действия?!

  • Во-вторых, есть ли способ заставить его работать так, как я хочу, или я должен изменить свои маршруты?

Я хотел бы, чтобы вы поняли мою проблему, и если у вас естьЛюбой комментарий или идею, пожалуйста, не стесняйтесь!

Thx

...