Я пытаюсь показать меню вкладки навигации от «menupersonas» контроллера в файл под названием «top_layout.html.erb»Получить информацию от родительского контроллера
Я пытаюсь показать, что меню с рендер но от "персон" и "personascorreos" просмотров:
"/ персоны/4/редактировать" и "/personascorreos/index.html.erb"
таким образом:
<%= render file: "menupersonas/top_layout" %>
Я разъясняю что "personas" has_ многие «personascorreos»
поэтому ссылка в меню (top_layout.html.erb), что мне нужно, чтобы показать это «link_to (persona_personastelefonos_path (персоны))»
Но я получил эту ошибку: «неопределенный локальные переменную или метод `персоны»
Я думаю, что знает, что проблема заключается в том, что @personascorreos = @persona.personascorreos.all
не определена в menupersonas
контроллере
Но мой вопрос: есть ли способ вызвать эту информацию из personascorreos
без необходимости определения его снова в menupersonas
?
Я рекомендую вам всегда настраивать данные с контроллеров. Установлен ли '@ persona' для каждого случая, когда вам нужно' top_layout'? –
Нет, @persona не установлен, но это то, что я хочу сделать, есть ли способ сделать это с необходимостью определять персону в каждом контроллере или как ее определить? Я не знаю, как это сделать, потому что это должно быть как «localhost: 3000/personas/1/personascorreos», как мне получить идентификатор? – Andru1989
Вы должны установить @persona с каждого контроллера. (Вы даже можете поделиться кодом, который устанавливает @persona, помещая его в модуль и смешивая его с каждым контроллером). Для запроса «/ personas/1/personascorreos» идентификатор Persona должен быть доступен в параметрах Hash, например 'params [: persona_id]'. Взгляните на свои маршруты («рейк-маршруты»), если что-то неясно. Также здесь очень хорошая документация http://guides.rubyonrails.org/routing.html#nested-resources. –