我正在尝试过滤我的帖子,并使用此查询抓住它们。
@posts = Post.all.includes(:course).where("courses.name IN (#{@user.courses.map(&:name).collect { |s| "'#{s}'" }.join(',') })").references(:course).order("posts.created_at DESC")
我对postgresql不熟悉并且知道存在一些差异。如何将其更改为在postgres中查询?
答案 0 :(得分:1)
您的查询将按原样运行。但您可以修改查询以避免执行不必要的操作:
@posts =
Post.all.includes(:course).where("courses.name IN (?)", @user.courses.map(&:name)).order("posts.created_at DESC")
Rails将负责加入此数组@user.courses.map(&:name)
您不需要手动执行此操作。