среда, 29 июня 2011 г.

Re: именование моделей и ассоциаций

Ну во-первых, :type не прокатит, ибо это зарезервированное слово в
рельсах (для STI)

Насчет второго - стоит работать с ассоциациями:
DocumentType.first.documents, или в миграции делать не t.references, а
t.integer :type_id и для ассоциации :foreign_key => 'type_id' указать

29 июня 2011 г. 10:47 пользователь Anton Kosiakin <anton@tinuviel.ru> написал:
> Друзья, приветствую
>
> Давно назревает вот такой вот вопросик: допустим, есть система какого-
> нибудь документооборота.
> В ней есть документы :-) У документа есть тип и набор текущих
> состояний.
>
> Как обзывать модели и ассоциации?
> В голову приходит такой вариант:
> документ - Document
> тип документа - DocumentType (у нас в системе же есть еще типы и для
> других сущностей)
> текущие состояния - DocumentState
>
> При таком раскладе, естественным образом получаются связки:
> class Document
>  belongs_to :document_type
>  has_many :document_states
> end
>
> Но это же хрень! document.document_type или document.document_states =
> \
> Хочется document.type и document.states, указав :class_name =>
> 'DocumentXXX'.
> Но ведь при этом я не смогу делать так: Document.all(:conditions =>
> {:type_id => DocumentType.first.id}), придется так -
> Document.all(:conditions => {:document_type_id =>
> DocumentType.first.id}) ? Но это ведь тоже не айс.
>
> Чего я тут недопонимаю? :)
>
> --
> --
> Данное сообщение отправлено Вам, так как Вы являетесь подписчиком группы "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

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

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