Нет "(.: Format)" в Rails 3.1 при попытке маршрутизировать корень сайта - PullRequest
0 голосов
/ 07 октября 2011

После обновления до Rails 3.1 у меня возникла проблема с маршрутизацией моего сайта. Ранее, с Rails 3.0, я мог сделать это в моей конфигурации маршрутизатора:

resources :quotes, :path => ""
root :to => "quotes#index"

Это даст мне маршруты типа GET /(.:format) и тому подобное, чего я и хочу, поскольку действие index моего QuotesController также может возвращать данные в JSON, XML и ATOM.

Теперь, после обновления до Rails 3.1, маршруты показываются так: GET /. (.:format) пропал, и попытка получить доступ к URL /.atom больше не работает. Как я могу вернуть эту функцию обратно?

РЕДАКТИРОВАТЬ : "rake route CONTROLLER = quotes" выводит следующее:

   about_quotes GET    /about(.:format)    {:action=>"about", :controller=>"quotes"}
     top_quotes GET    /top(.:format)      {:action=>"top", :controller=>"quotes"}
  random_quotes GET    /random(.:format)   {:action=>"random", :controller=>"quotes"}
  search_quotes GET    /search(.:format)   {:action=>"searchform", :controller=>"quotes"}
                POST   /search(.:format)   {:action=>"search", :controller=>"quotes"}
nonsense_quotes GET    /nonsense(.:format) {:action=>"nonsense", :controller=>"quotes"}
    tags_quotes GET    /tags(.:format)     {:action=>"tags", :controller=>"quotes"}
     tag_quotes GET    /tags/:id(.:format) {:action=>"tag", :controller=>"quotes"}
   stats_quotes GET    /stats(.:format)    {:action=>"stats", :controller=>"quotes"}
       up_quote GET    /:id/up(.:format)   {:action=>"up", :controller=>"quotes"}
     down_quote GET    /:id/down(.:format) {:action=>"down", :controller=>"quotes"}
         quotes GET    /                   {:action=>"index", :controller=>"quotes"}
                POST   /                   {:action=>"create", :controller=>"quotes"}
      new_quote GET    /new(.:format)      {:action=>"new", :controller=>"quotes"}
     edit_quote GET    /:id/edit(.:format) {:action=>"edit", :controller=>"quotes"}
          quote GET    /:id(.:format)      {:action=>"show", :controller=>"quotes"}
                PUT    /:id(.:format)      {:action=>"update", :controller=>"quotes"}
                DELETE /:id(.:format)      {:action=>"destroy", :controller=>"quotes"}
           root        /                   {:controller=>"quotes", :action=>"index"}

1 Ответ

0 голосов
/ 08 октября 2011

Итак, я решил, что это, вероятно, то, что команда Rails намеренно сделала, чтобы препятствовать URL-адресам вроде "/.atom" (потому что на самом деле это похоже на то, что должно произойти?), Так что ятеперь вместо него используется второй маршрут (get "latest",: action =>: index) для форматных URL (например, "/latest.atom").

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...