Запитване за composed_of

20 views
Skip to first unread message

Georgi Tapalilov

unread,
Apr 20, 2012, 12:17:10 PM4/20/12
to ruby-on-rai...@googlegroups.com
Здравейте. Опитвам се да разбера как работи и приложението на метода composed_of.Гложди ме от бая време. Някой използва ли го и може ли да ми обясни накратко?

Поздрави,
Георги.

Krasimir Angelov

unread,
Apr 20, 2012, 12:29:42 PM4/20/12
to ruby-on-rai...@googlegroups.com
Ето един пример - http://apidock.com/rails/ActiveRecord/Aggregations/ClassMethods/composed_of#230-Example-of-composed-of-composition-class-implementation.

2012/4/20 Georgi Tapalilov <tapa...@gmail.com>
Здравейте. Опитвам се да разбера как работи и приложението на метода composed_of.Гложди ме от бая време. Някой използва ли го и може ли да ми обясни накратко?

Поздрави,
Георги.

--
Това писмо идва от пощенския списък „Ruby on Rails: България“.
За да се отпишете: ruby-on-rails-bul...@googlegroups.com
Останалите екстри: http://groups.google.com/group/ruby-on-rails-bulgaria?hl=bg

Stefan Kanev

unread,
Apr 21, 2012, 11:10:08 AM4/21/12
to ruby-on-rai...@googlegroups.com
Типичен пример за употреба на това са адреси.

Да кажем, че поне два модела (Order, Contact) в базата ти имат адреси. Имаш два варианта:
  1. Таблица shipping_addresses и релации към нея от orders и contacts
  2. Inline на колоните, веднъж в orders и веднъж в shipping address
Първото изглежда като адекватно решение, но всъщност е доста крива идея*:
  1. ShippingAddress-а получава id, което отваря кутия с червеи
  2. Аналогично с първото, ShippingAddress-а е Value Object, но ако го моделираш с таблица става Entity
  3. Релаците от orders и contacts са малко странни. Могат ли два order-а да сочат към един адрес? Order и contact да сочат към един адрес? Адреси без нищо, което да сочи към тях?
Далеч по-добре е да повториш колоните и в двете таблици**. Но вероятно ще има метод-два-три, които работят с адреси. И вероятно ще е по-удобно да имаш обект, който да представлява обект.

Надявам се това да ти е от полза.

* YMMV. Има случаи, в които всъщност е адекватно.
** На пръв поглед това изглежда като повторение на DRY. Според мен, не е, но това е друга тема.

georgi tapalilov

unread,
Apr 21, 2012, 11:23:31 AM4/21/12
to ruby-on-rai...@googlegroups.com
@Krasimir Angelov Благодаря за линка

@Stefan Kanev Благодаря за подробното обяснения. Мисля, че взех да го разбирам. Трудно ми беше логически да го осмисля.

Поздрави,
Георги.

On Sat, Apr 21, 2012 at 6:10 PM, Stefan Kanev <stefan...@gmail.com> wrote:
Типичен пример за употреба на това са адреси

Reply all
Reply to author
Forward
0 new messages