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

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

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

class Post < ActiveRecord::Base
has_many :comments

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


person diasks2    schedule 28.05.2012    source источник


Ответы (1)


Если Post является активной моделью, вы не можете устанавливать отношения, используя методы в активной записи. Вы можете ознакомиться с 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

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

person Chamnap    schedule 28.05.2012
comment
Спасибо за ответ (извините за поздний ответ). В этом случае, как мне обращаться с файлом route.rb? Является ли ресурс комментариев вложенным в сообщения? - person diasks2; 01.06.2012