1

RoR でブログを作成するためにgem postmarkdown を使用しています。gem の Post モデルはデータベースに支えられていません (ActiveModel を使用します)。ブログ投稿用のデータベースを利用しないブログのコメント モデルを投稿モデルに関連付けるにはどうすればよいですか?

たとえば、ActiveRecord データベースに支えられた典型的なブログでは、次のような関係を設定できます。

class Post < ActiveRecord::Base
has_many :comments

ただし、この場合、コメント モデルを作成する最良の方法がわかりません。

4

1 に答える 1

1

Post がアクティブモデルの場合、アクティブレコードのメソッドを使用してリレーションを設定することはできません。githubで README を確認できます。その機能はありません。

1 つの方法は、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 に答える