Ruby on Rails - Как связать модель комментариев с блогом без базы данных

Я использую самоцвет postmarkdown для создания блога в RoR. Модель Post в геме не поддерживается базой данных (она использует ActiveModel). Как бы я мог связать модель комментариев с моделью постов для блога, который не использует базу данных для постов блога?

Например, с типичным блогом, поддерживаемым базой данных ActiveRecord, я мог бы установить отношения (такие как)

class Post < ActiveRecord::Base
has_many :comments

Однако в этом случае я не знаю лучшего способа создания модели комментариев.

1 ответ

Решение

Если Post является активной моделью, вы не можете установить отношения, используя методы в activerecord. Вы можете проверить README на github. У него нет такой функциональности.

Один из способов - просто определить свои собственные методы внутри модели Post.

class Post
  def comments
    Comment.where(:post_id => id)
  end
end

class Comment < ActiveRecord::Base
  def post
    Post.find_by_id(post_id)
  end
end

Изменить: Ах, я просто нахожу аналогичный вопрос, Ruby on Rails 3 (3.1) Ассоциации ActiveModel (вложенные модели без таблиц). Вы также можете проверить это.

Другие вопросы по тегам