2

したがって、ドキュメント、ビデオ、投稿などの他の多くのモデルを :has_many 持つ User モデルがあります。次のように User モデルから「do」ブロックを実行すると、私の質問が発生します。

has_many :posts do
    def recent
      find(:all, :order => 'created_at desc', :limit => 12)
    end
  end

これにより、user.posts.recent のようなものを呼び出して、ユーザーに関連付けられた投稿のみを見つけることができます。これで、どうすれば :dependent => :destroy または :dependent => :delete_all をこの関連付けに追加できますか? これまでに試したことはすべてエラーになりました。

4

2 に答える 2

3

named_scopeの使用を検討する必要があるようです。

関連付けに対して do ブロックが必要な理由はありません。

その最近のメソッドを名前付きスコープに変える必要があり、その後、 :dependent => destroy などを追加できます。

幸運を!

于 2008-11-11T21:28:55.190 に答える
-1

これは私の知る限りうまくいくはずです:

has_many :posts, :dependent => :destroy do
    def recent
      find(:all, :order => 'created_at desc', :limit => 12)
    end
  end
于 2008-11-12T04:17:11.310 に答える