我如何将这个sqlite查询转换为Ruby on Rails中的postgresql查询?

时间:2016-07-28 00:34:06

标签: ruby-on-rails postgresql sqlite

我正在尝试过滤我的帖子,并使用此查询抓住它们。

@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中查询?

1 个答案:

答案 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)

中的值

您不需要手动执行此操作。