2016-10-27 4 views
0

У меня есть модель организации, и я также сделал серию вложенных моделей под названием папки «stance». Одна из этих моделей называется обзором.Rails - как связать вложенные модели

Ассоциации являются:

Organisation.rb

has_one :overview 

Stance :: Обзор

belongs_to :organisation 

Мои контроллеры для мировоззренческими ресурсы вложены в папку под названием позиции.

Мои маршруты:

namespace :stance do 
    resources :overviews 
    end 

В моей позиции частичный вид, я пытаюсь сделать атрибуты из таблицы обзора.

Я попытался:

<p><%= @overview.internal_explanation %></p> 
<p><%= @stance.overview.internal_explanation %></p> 
<p><%= @stance::overview.internal_explanation %></p> 

Я хочу, чтобы отобразить это частичное в моей организации шоу, но я не могу понять, как получить доступ к обзорной таблице. Нужно ли добавить ссылку на «позицию» в ассоциациях?

я могу видеть, что в консоли мне нужно написать:

o = Stance::Overview.create(internal_explanation: "test") 

, но я не могу понять, как использовать это в самом коде.

+0

Какие ошибки вы видите по этому паролю? –

ответ

1

Если вы не используете стандартное соглашение об именах, то вам необходимо дать Rails некоторые намеки:

has_one :overview, class_name: Stance::Overview 

belongs_to :organisation, inverse_of: :overview 

Лучшее место, чтобы узнать это посмотреть на комментарии исходного кода на has_many и belongs_to. Я бы рекомендовал использовать редактор, который имеет функциональность «перейти к исходному»/«перейти к объявлению», которая позволяет вам щелкнуть по имени метода и нажать клавишу «Код», чтобы вы могли видеть комментарии. Я использовал это через Rubymine, когда я изучал Ruby, и это было огромной помощью.

+0

Спасибо большое Мэтт! – Mel

+0

Есть ли что-то особенное, что мне нужно сделать для белого списка сильных параметров в контроллере? Я изменил все действия контроллера, включив «Stance ::» перед «обзором», но теперь я не могу найти конфигурацию, которая работает для сильных параметров. Ошибка говорит: param отсутствует или значение пустое: обзор , когда я пишу параметры так: def overview_params params.require (: overview) .permit (: internal_explanation,: external_explanation) end – Mel

+0

Бит трудно выработать что вы имеете в виду, не видя кода контроллера. Похоже, это будет лучше всего размещено как отдельный вопрос, где вы можете показать все это подробно, плюс сообщение об ошибке, которое вы получите. –

Смежные вопросы