Именованные маршруты - только это; маршрут с прикрепленным именем, так что вы можете легко обратиться к нему, когда вы хотите создать URL. Среди прочего, это может устранить неоднозначность.
Ресурс - это, по сути, «вещь», которой вы хотите управлять маршрутами. Когда вы определяете, что «разделы» являются ресурсом, вы делаете следующее: «Я хочу, чтобы маршрут получал все разделы. Я хочу, чтобы маршрут добавлял новый раздел. Я хочу, чтобы маршрут редактировал существующий раздел. хочу маршрут для удаления раздела. " Что-то в этом роде. Эти маршруты указывают на стандартизированные имена методов, такие как index
, new
, edit
и т. Д. Каждому из этих маршрутов будет присвоено имя в зависимости от того, что это; так что теперь есть маршрут с именем 'edit_section'
.
Параметр :has_many
позволяет вам сказать, что у определенного типа вещей есть суб-вещи. Например, вы можете сказать map.resources :sections, :has_many => [:questions]
. Это означает, что вопрос принадлежит разделу, и это будет отражено в URL и маршруте. Вы получите URL-адреса, такие как '/sections/27/questions/12'
, и именованные маршруты, такие как 'section_questions'
.
Параметр :only
говорит "только создавать маршруты для этих действий"; Вы можете использовать его, если хотите разрешить только перечисление, просмотр и добавление элементов, а не редактирование или удаление.