2

Rails2.3.2アプリで

私は2つのモデルを持っています:

class Post
   has_many :approved_comments, :class_name => 'Comment', :conditions => ['approved => ?', true]
end

class Comment
  belongs_to :post
end

どういうわけか、コメントを熱心にロードしようとすると、エラーが発生します

post = Post.find(:first, :conditions => ["permalink=?", permalink], :include => :approved_comments
未定義のメソッドは「ロードされましたか?」にとって #

Association_preload.rbの228行目から

これは既知の問題ですか、それとも私は何か間違ったことやサポートされていないことをしていますか?

私はこれについて少し議論を見つけるようです:http://groups.google.com/group/maine-ruby-users-group/browse_thread/thread/796cf58b62f9bc52

4

2 に答える 2

0

次のようなものを試すことができます:

class Post
   has_many :approved_comments, :class_name => 'Comment'
end

class Comment
  belongs_to :post
end

そして次のようなもの:

Post.find(:all, :joins => :approved_comments, :conditions => ["comments.approved = ? AND permalink = ?", true, permalink], :include => :approved_comments)

これにより、必要なすべての投稿が検索され、それらのコメントが熱心に読み込まれます。大規模なレコード セットでは、お勧めしませんが、速度が遅くなり、パッセンジャー/雑種インスタンスのメモリ サイズが吹き飛ばされます。

于 2009-07-01T11:22:00.910 に答える