0

acts_as_paranoid論理的な削除に使用しています。レコードが削除されたとき。レコードは消えません。'deleted_at'列のタイムスタンプを取得するだけです。これは削除されたことを意味します。

私のモデルでは、

コミュニティhas_many:topics

このようなトピックをすべてフェッチしました

@topics = Topic.page(params[:page]).order("updated_at DESC")

ただし、親のコミュニティがすでに削除されているトピックレコードを表示している場合は、ルーティングエラーが発生します。

親の「コミュニティ」が存在するすべてのトピックを取得するにはどうすればよいですか?

4

1 に答える 1

1

コミュニティに次のようなスコープがある場合

class Community
  def self.not_deleted
    where deleted_at: nil
  end
end

それからあなたはすることができます

@topics = Topic.joins(:community).merge(Community.not_deleted).
  page(params[:page]).order("updated_at DESC")

そうでなければあなたができる

@topics = Topic.joins(:community).where( community: { deleted_at: nil } ).
  page(params[:page]).order("updated_at DESC")
于 2013-01-25T03:48:20.143 に答える