2013-02-17 7 views
0

Быстрые вопросы:RoR - Построение длинной цепи объектов

Возможно ли построить многоуровневые вложенные объекты? Как это сделать?

@main_object = Object.new 
@main_object.build_anotherobject 

Вопросы: как построить больше объектов внутри этих детских объектов? И правильно ли это делать в Rails?

@main_object.another.others.build?? 

Я не знаю, как это сделать, и если это хороший способ достичь многоуровневых вложенных объектов. Другой вопрос - обработка внешних ключей в этих вложенных объектах. Какой-то свет, как получить правильный FK? Я вижу, что мне нужно сохранить объекты в правильном порядке, потому что мне нужно проверить существование строки в родительской таблице, а затем вставить действительный FK внутри дочернего элемента с parent_id.

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

Спасибо за внимание!

ответ

0

Вам нужно будет присвоить его переменной:

another_object = @main_object.build_anotherobject 

И потом:

another_object.even_more_objects.build 

Повторите, как вам нужно.

+0

Будет ли FK в порядке? Будет ли Rails знать, как установить правильный порядок при сохранении? Если у родительского объекта есть дочерний элемент, и у этого родителя есть parent_id, мне сначала нужно сохранить родителя и получить идентификатор. – josias

+0

Если вы используете вложенные атрибуты, у вас не будет этой проблемы. –

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