Создать маршруты к контроллеру без модели с / id - PullRequest
0 голосов
/ 21 февраля 2011

У меня есть продукт с внешним ключом collection_id

Я хочу передать идентификатор контроллеру. Для этого у меня есть следующие маршруты для моего контроллера:

controller :magasin do

  get "magasin" => "magasin#index"
end

Единственный вид в моем контроллере - это magasin / index.html.erb

Ссылка на magasin link_to collection.nom, magasin_path(collection)

Этот тип синтаксиса обычно работает в контроллерах с моделями. Вот моя ссылка: http://localhost:3000/magasin.2 вместо http://localhost:3000/magasin/2

Позже мне нужно будет вызвать то же представление с product_kind_id вместо collection_id, и я добавлю сортировку по имени / цене ....

Как получить идентификатор в качестве обычного аргумента (/:id) вместо типа (.id)?

1 Ответ

1 голос
/ 21 февраля 2011

Популярная схема URL, которой нужно следовать: RESTful маршрутизация . В Rails есть эта встроенная функция, и она будет настроена для вас, если вы инициализируете свой ресурс с помощью rails generate scaffold Magasin nom:string.

Если вы добавите resources :magasins в свой файл маршрутизации, он будет маршрутизировать /magasins в MagasinsController#index и /magasins/1 в MagasinsController#show с params[:id], установленным в "1". Он также настроит несколько других маршрутов, которые будут полезны в будущем, но пока только вызовут исключение для действия, которое не найдено.

Вы не хотите использовать точку в качестве разделителя аргументов, поскольку Rails помещает то, что следует за точкой, в методе request.format или просто в params[:format] (обычно доступ к которому осуществляется с помощью метода respond_to, поставляемого с сгенерированные строительные леса). Сохраните эту точку на потом, когда вы работаете над созданием альтернативных форматов отображения, таких как XML и JSON.

Я понимаю, что много сказал в небольшом пространстве, поэтому не стесняйтесь задавать любые дополнительные вопросы, как только вы проконсультировались по Rails Guide по этому вопросу, и я буду очень рад помочь!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...