Рельсы Вопрос об отношениях (средний) - PullRequest
0 голосов
/ 18 ноября 2010

Я реализую это решение как альтернативу полиморфизму.

Почему вы не можете иметь внешний ключ в полиморфной ассоциации?

Но мне интересно, есть ли простой путь:

Article.comments вместо Article.commentable.comments

1 Ответ

3 голосов
/ 18 ноября 2010

Вы должны иметь возможность использовать delegate для передачи вызовов методов другому объекту.

class Article < ActiveRecord::Base
  has_one :commentable

  delegate :comments, :to => :commentable
end

Редактировать:

Я предполагаю, что вы не хотите использоватьПостоянная статья в вашем примере, потому что это не сработает в любом случае.Эти методы являются методами экземпляра и должны использоваться как:

article = Article.first

article.commentable.comments
article.comments (Equivalent to above)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...