在 Rails 3 应用程序中,我试图查找父关联中的列相等的记录是特定字符串。例如,类别名称 =“my_category”的帖子。
class Post
belongs_to Category
end
class Category
has_many Posts
end
类别包含一个名称列,这是我可用于运行搜索的唯一数据。所以我不能直接在 category_id 上过滤。
什么是最有效的 Rails-y 方式来做到这一点。我尝试了几个看起来应该可行的选项,但没有!
Post.joins(:category).where('category.name'=>'my_category')
Post.joins(:category).where(:category=>{:name=>'my_category'})
Post.includes(:category).where('category.name'=>'my_category')
Post.includes(:categories).where('category.name'=>'my_category')
Post.includes(:category).where(:category=>{:name=>'my_category'})
我可以在两行中看到如何做到这一点
category=Category.where(:name=>"my_category")
Post.where(:category_id=>category)
但我想知道我是否忽略了一些 Rails 魔法?对不起,如果这是一个菜鸟问题,我还在学习!