Нужно ли связываться с файлом Rails "rout.rb"? - PullRequest
9 голосов
/ 02 января 2009

Я никогда не касаюсь routes.rb за пределами вызова map.root, чтобы установить маршрут по умолчанию. Я всегда был доволен, чтобы использовать URL-адреса в форме ...

/controller/action/perhaps_an_id

и работает нормально.

Это делает меня плохим человеком? Я пропускаю что-то совершенно потрясающее?

Что если я попытаюсь принять дизайн RESTful? Значит ли это, что мне нужно отредактировать routes.rb или я могу продолжать приятно игнорировать это?

(Я пытался прочитать эту тему в The Rails Way, но это было невыносимо.)

Ответы [ 4 ]

6 голосов
/ 03 января 2009

Если вы генерируете свои ресурсы с помощью скаффолдинга по умолчанию, то он даже будет включать в себя маршрутизацию restful для вас в routs.rb.

Если вы не используете скаффолдинг, то причина его работы в том, что маршруты по умолчанию внизу по умолчанию:

    map.connect ':controller/:action/:id'
    map.connect ':controller/:action/:id.:format'

Я следил, что лучше удалить их для рабочих приложений и вместо этого убедиться, что выставлены только те ресурсы, которые должны быть выставлены. С Rails 2.2 вы даже можете ограничить методы RESTful из map.resources:

map.resources :posts, :only => [:index, :show]
map.resources :comments, :except => [:edit]

Есть также множество интересных вещей, которые вы можете делать с вложенными ресурсами, именованными маршрутами и т. Д. У них много примеров в документации (http://www.railsbrain.com/api/rails-2.2.2/doc/index.html?a=M000255&name=resources)

5 голосов
/ 03 января 2009

Вы также можете создать собственные именованные маршруты для вашего отдела маркетинга (например, mycoolsite.com/free-trial), которые будут привязаны к конкретным контроллерам и действиям и т. Д.

У Райана Бейтса есть серия скринкастов, в которых рассказывается о некоторых изящных вещах, которые вы можете делать с маршрутами: http://railscasts.com/tags/14

5 голосов
/ 02 января 2009

Если вы не переключитесь на дизайн RESTful, это не сделает вас плохим человеком, и если вы не чувствуете необходимости вносить изменения, продолжайте писать свои приложения в порядке 1.x.

Большинство разработчиков Rails приняли REST и, похоже, очень рады этому. Я не думаю, что здесь есть необходимость повторять все аргументы pro REST.

Вам необходимо добавить одну строку для каждого ресурса в файл маршрутов, например:

map.resources :posts
4 голосов
/ 02 января 2009

Если бы вы пошли RESTful, да, вам бы пришлось отредактировать route.rb и добавить свои ресурсы, например,

map.resources :your_resource

или, если у вас есть вложенные ресурсы,

    map.resources :people do |person|
      person.resources :ideas do |idea|
        ideas.resources :bad_ones
      end
    end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...