Я использую приложение Rails 3 с Kaminari для разбиения на страницы.Из-за моего языка, SEO и дружественных URL-адресов, я хочу изменить свои URL-адреса.Но, похоже, мне приходится выбирать между дружественными ссылками на страницы и / или отображением правильных имен методовНо обо всем по порядку:
У меня есть модель, которая называется «страницы» и содержит несколько страниц, которые нельзя применить только к одной модели или не содержат никакой модели.Ниже приведен фрагмент моего "rout.rb":
match'/neugikeiten', :to => 'pages#neuigkeiten'
scope(:path_names => { :new => "neu", :edit => "bearbeiten", :delete => "loeschen", :index => "index", :page => "seite" }) do
resources :news, :path => "neuigkeiten"
end
Как видите, я сопоставляю каждую страницу из страниц с одним именем и сопоставляю все остальные мои модели и методы (я использовал только однукак пример) с областью применения.Все это работает просто отлично.Но теперь я должен добавить маршруты Kaminare, для которых маршрут выглядит следующим образом:
resources :pages do
get 'seite/:page', :action => :neuigkeiten, :on => :collection
end
Итак, в основном я хочу получить URL-адрес, подобный следующему:
/neuigkeiten/seite/2
2 - просто пример, а seite - немецкое слово для страницы.Но вот что я получаю, это:
/pages/seite/2
Итак, я получаю название модели вместо имени, которое я определил для этой единственной страницы.Я уже пробовал переключать разные коды, но либо у меня просто есть оригинальное название модели в URL, либо я не получаю хорошие URL для разбивки на страницы, которые выглядят так:
/neuigkeiten?page=2
И если я пытаюсь соответствоватьстраницы без ресурса, как это:
match'/tagebuch/seite/:page', :to => 'pages#tagebuch', :on => :collection
Я получаю следующую ошибку.
can't use collection outside resources scope
Мне кажется, что должен быть другой способ сделать это, потому что я могу 'Это не единственная проблема такого рода.
Я рад любой помощи!