1

我正在使用 gem postmarkdown在 RoR 中创建博客。gem 中的 Post 模型不受数据库支持(它使用 ActiveModel)。对于不使用数据库来存储博客文章的博客,我将如何将 Comment 模型与 Post 模型相关联?

例如,对于一个由 ActiveRecord 数据库支持的典型博客,我可以设置关系(例如)

class Post < ActiveRecord::Base
has_many :comments

但是,在这种情况下,我不知道创建评论模型的最佳方法。

4

1 回答 1

1

如果 Post 是一个 activemodel,则不能使用 activerecord 中的方法设置关系。您可以在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 Associations (tableless nested models)。你也可以检查一下。

于 2012-05-28T06:27:05.013 回答