我尝试创建一个查询来显示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
答案 0 :(得分:2)
@contents = Content.published.recent.where(:id => params[:id])
不要将params放入("id in (#{params[:id])")
之类的where子句中,因为它很容易被sql注入。更多详情请访问Rails SQL injection?