2010-12-02 2 views
3

У меня есть папка вида product_types. Имя файла контроллера - product_types_controller, а класс, который у меня есть, - ProductTypesController. Обычно я сохраняю формат _, который предпочитает рельсы, но мне нужно сохранить синтаксис текущей страницы по причинам индекса поиска.Использование дефис для URL-адресов в рубинах на рельсах

Как я могу получить этот контроллер для отображения в mysite.com/product-types и всех страниц в папке product_types для mysite.com/product-types/some-page? Нужно ли мне указывать страницы с помощью - или я должен использовать синтаксис _, а также просто изменять маршруты.

Это для сайта Rails 2.3.8.

Благодаря

ответ

2

Если вы используете RESTful маршруты, вы можете сделать это:

map.resources :product_types, :as => 'product-types' 

Я надеюсь, что это помогает!

+0

Должен ли я называть файлы вида, используя символы подчеркивания или тире, так что bar_of_soap или bar-of-soap. Особенно в контроллере я могу только def bar_of_soap не мыться, так что у него проблемы с просмотром действия. Мысли? – Splashlin 2010-12-02 18:31:21

+0

Несомненно, все за кулисами остается неизменным. Имена папок и файлов по-прежнему будут подчеркнуты. Единственное упоминание тире в файле маршрутов. – 2010-12-02 20:30:15

6

Для Rails 3 вы должны сделать это по-другому:

resources "product-types", :as => :product_types, :controller => :product_types 
1

В рельсам 3 вы можете сделать:

resources :product_types, :path => '/product-types' 
4

В случае, если вы используете пространство имен в ваших маршрутов в Rails 3, вы может использовать следующее для тире в URL-адресах:

namespace :product_types, :path => "product-types" do 
Смежные вопросы