Rails Controllers => params[]

Может кто-нибудь помочь мне немного лучше понять параметры в вложенных атрибутах?

Я использую Apotomo. Но для примера. Мы могли бы просто принять его в ApplicationController

У меня есть простой контроллер шоу действий.

if params[:id].present?
    @menu = Menu.find(params[:id])  
else
    @menu = Menu.first  
end

Который проверяет, указан ли идентификатор меню в URL. Если нет, то показывает первое меню.

Это работает хорошо, пока я только на /menus/ URL.

Но у меня есть вложенные атрибуты. Поэтому, как только мы посетим URL / меню /17/ категории /

Он находит params[:id] как параметр категории, а не меню.

Как только я вложусь, я могу позвонить:menu_id, и он отлично работает. Но больше не работает на родительском объекте.

Как мне искать params[:id] объекта меню независимо от того, где я нахожусь в URL?

И я что-то упустил полностью?

Вот мой конфиг роутов, а также:

resources :menus, :only => [:show, :home] do
  resources :categories, :only => [:index, :show]
end

Спасибо тебе за твое терпение.

1 ответ

Я бы проверил, как определяется маршрутизация. Может быть, есть причина, почему эта ссылка переводится таким образом.

Другие вопросы по тегам