Activerecord查询数组包含ID

时间:2014-03-16 18:31:59

标签: ruby-on-rails activerecord

我尝试创建一个查询来显示CMS中某个部分的每个内容。

关系是一对多,一个内容有很多部分。

现在我创建了一个区段控制器,在show方法中,我收到了一个区段的参数[:id]。

我必须选择content.section_ids数组包含我的params [:id]

的所有内容

我知道如何创建反向查询(数组中的ID),但我找不到解决方案。

我的查询是:

@contents = Content.published.recent.where("#{params[:id]} IN (?)", ...)

更新

这是关系。

我必须选择部分==的所有内容到我的参数中传递的部分ID。

class Content < ActiveRecord::Base
   has_many :sections, as: :sectionable
end

class Section< ActiveRecord::Base
  belongs_to :sectionable, polymorphic: true
end

1 个答案:

答案 0 :(得分:2)

@contents = Content.published.recent.where(:id => params[:id])

不要将params放入("id in (#{params[:id])")之类的where子句中,因为它很容易被sql注入。更多详情请访问Rails SQL injection?