Построение модели данных типа вики в рельсах - PullRequest
1 голос
/ 22 апреля 2010

У меня есть модель данных, в которой я хотел бы иметь элемент, описание которого можно редактировать. Я также хотел бы отслеживать все изменения, внесенные в элемент. У меня проблемы с моей текущей стратегией:

class Item < ActiveRecord::Base
  has_one  :current_edit,
           :class_name => "Edit",
           :foreign_key => "current_edit_id"
  has_many :edits
end

class Edit < ActiveRecord::Base
  belongs_to :item
end

Может ли Предмет иметь несколько ассоциаций с одним и тем же классом, как этот?

Я подумал, что должен перейти к отслеживанию версии редактирования в объекте Редактирования, а затем просто отсортировать базу отношений has_many по этой версии.

1 Ответ

1 голос
/ 22 апреля 2010

Да, может. Но вы должны использовать belongs_to, а не has_one. Тогда ваши модели должны выглядеть так:

(Item, current_edit_id, ...)
(Edit, item_id, ....)

В документе rails doc это объясняется более подробно: Является ли это принадлежностью или принадлежностью has_one?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...