понедельник, 25 июля 2011 г.

Re: Создание несамостоятельных сущностей

Нет, ассоциации не полиморфные. С полиморфизмом у меня проблем нет,
просто хочу узнать как правильно делать такие ассоциации с
принудительным созданием ассоциируемой сущности.

On Jul 25, 2:03 pm, "a.ognevsky" <a.ognev...@gmail.com> wrote:
> Полиморфные ассоциации, нет? 2 статьи про это писал на Хабре.
>
> --
> Andrey Ognevsky
>
>
>
>
>
>
>
> On Monday, July 25, 2011 at 2:00 PM, Vladimir wrote:
> > Доброго времени суток всем и каждому в сообществе RoR2Ru!
>
> > У меня к вам имеется следующий вопрос:
>
> > Как создать несамостоятельные сущности, то есть описать, то есть
> > сообщить, что одна сущность не может существовать не имея (has_one)
> > или не принадлежа (belongs_to) другой.
>
> > Поясню ситуацию: У меня есть базовая модель Post, от которой
> > наследуются модели Article и Product (STI), Article и Product имеют
> > помимо базовой таблицы posts таблицы с собственными атрибутами:
> > article_attr_sets и product_attr_sets. Хочу, чтобы при создании нового
> > экземпляра Article или Product автоматически создавалась сущность
> > соответственно ArticleAttrSet или ProductAttrSet. Сейчас это
> > реализовано совсем коряво:
> >  #Post model
> >  def build_own_attr_set
> >  unless send(self.class.attr_set_name.to_sym)
> >  send(:"build_" + attr_set_name)
> >  end
> >  end
>
> >  def self.attr_set_name
> >  "#{self.to_s.downcase}_attr_set"
> >  end
>
> > before_create :build_own_attr_set
>
> > Подозреваю, что в Rails имеется механизм для реализации этого, но не
> > знаю как это называется.
>
> > Благдарю за помощь!
>
> > --
> > --
> > Данное сообщение отправлено Вам, так как Вы являетесь подписчиком группы "RubyOnRails to russian" на группах Google.
> > FAQ группы находится по адресу:http://ru.wikibooks.org/wiki/RubyFAQ
>
> >  Для того, чтобы отправить сообщение в эту группу, пошлите его по адресу
> > ror2ru@googlegroups.com
> >  Чтобы отменить подписку на эту группу, отправьте сообщение по адресу: ror2ru-unsubscribe@googlegroups.com
> >  Дополнительные варианты находятся на странице группыhttp://groups.google.com/group/ror2ru?hl=ru

--
--
Данное сообщение отправлено Вам, так как Вы являетесь подписчиком группы "RubyOnRails to russian" на группах Google.
FAQ группы находится по адресу: http://ru.wikibooks.org/wiki/RubyFAQ

Для того, чтобы отправить сообщение в эту группу, пошлите его по адресу
ror2ru@googlegroups.com
Чтобы отменить подписку на эту группу, отправьте сообщение по адресу: ror2ru-unsubscribe@googlegroups.com
Дополнительные варианты находятся на странице группы http://groups.google.com/group/ror2ru?hl=ru

Комментариев нет:

Отправить комментарий