Вам нужно возиться с файлом Rails «routes.rb»?
-
03-07-2019 - |
Вопрос
я никогда не трогаю routes.rb
за пределами вызова map.root
чтобы установить маршрут по умолчанию.Меня всегда устраивало использование URL-адресов в форме...
/controller/action/perhaps_an_id
и он работает нормально.
Делает ли это меня плохим человеком?Я упускаю что-то совершенно потрясающее?
Что, если я попытаюсь внедрить дизайн RESTful?Означает ли это, что мне придется редактировать routes.rb
или я мог бы продолжать приятно игнорировать это?
(Я пытался прочитать эту тему в The Rails Way, но это было невыносимо.)
Решение
Если вы генерируете свои ресурсы с помощью шаблона по умолчанию, тогда он даже будет включать в себя спокойную маршрутизацию для вас в маршрутах.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)
Другие советы
Вы также можете создать маршруты с собственными именами для своего отдела маркетинга (например:mycoolsite.com/free-trial), которые относятся к конкретным контроллерам и действиям и т. д.
Райан Бейтс подготовил серию скринкастов, в которых рассказывается о некоторых интересных вещах, которые можно делать с маршрутами: http://railscasts.com/tags/14
То, что вы не перешли на RESTful дизайн, не делает вас плохим человеком, и если вы не чувствуете необходимости что-то менять, продолжайте писать свои приложения в стиле 1.x.
Большинство разработчиков Rails внедрили REST и, кажется, очень этому рады.Я не думаю, что здесь есть необходимость повторять все аргументы в пользу REST.
Вам нужно добавить одну строку для каждого ресурса в файл маршрутов, например:
map.resources :posts
Если бы вы использовали RESTful, да, вам пришлось бы отредактировать Routes.rb и добавить свои ресурсы, например:
map.resources :your_resource
или если у вас есть вложенные ресурсы,
map.resources :people do |person|
person.resources :ideas do |idea|
ideas.resources :bad_ones
end
end