如何通过避免嵌套的nil记录来获取记录?

时间:2013-01-25 02:48:12

标签: ruby-on-rails ruby-on-rails-3

我正在使用acts_as_paranoid进行逻辑删除。 删除记录时。记录不会消失。它只是在'deleted_at'列中获取时间戳,这意味着删除。

在我的模型中,

  

社区has_many:主题

我获取了所有这样的主题

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

但是,当显示其父级社区已被删除的主题记录时,会出现路由错误

如何获取父级“社区”存在的所有主题?

1 个答案:

答案 0 :(得分: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")