【发布时间】:2012-04-20 09:30:24
【问题描述】:
在 Rails 3 应用程序中,我试图查找父关联中的列相等的记录是特定字符串。例如,类别名称 = "my_category" 的帖子。
class Post
belongs_to Category
end
class Category
has_many Posts
end
类别包含一个名称列,这是我可用于运行搜索的唯一数据。所以我不能直接在 category_id 上过滤。
最有效的 Rails 方式是什么?我尝试了几个看起来应该可行的选项,但没有!
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 魔法?对不起,如果这是一个菜鸟问题,我还在学习!
【问题讨论】:
标签: ruby-on-rails activerecord