通常可以使用 ActiveRecord 提供的查询方法来编写查询语句。例如,假设我们有一个 Post 模型类,它有一个 title 字段,我们想查找标题包含“Rails”的所有帖子,那么可以像下面这样编写查询语句:
Post.where("title LIKE ?", "%Rails%")
这会返回一个 ActiveRecord::Relation 对象,其中包含所有满足查询条件的帖子。请注意,这里使用了占位符(?)来避免 SQL 注入攻击。还有许多其他查询方法可用,例如 order、limit、offset 等。更多信息可以参见 ActiveRecord 文档。
另外,如果您觉得使用字符串作为查询条件不够方便,可以考虑使用 arel 库来构建查询语句,它提供了更灵活的 API,可以更好地组合查询条件。例如,上面的查询可以用 arel 编写如下:
Post.where(Post.arel_table[:title].matches("%Rails%"))
这里使用了 Arel::Table 对象来访问 title 字段,并使用了 matches 方法来模糊匹配字符串。这种方式更加灵活,可以方便地组合多个查询条件。