Rails查询相关表的列值

时间:2016-06-08 14:20:19

标签: ruby-on-rails activerecord

django中,您可以创建跨越关系的查询

Entry.objects.filter(blog__name='Beatles Blog')

什么是轨道等效?

2 个答案:

答案 0 :(得分:2)

Rails方法并不干净,但它允许您在查询中明确表示。 在上述情况下,你会做

Entry.joins(:blog).where(blogs: {name: "Beatles Blog"})

这是假设您的博客has_many :entries和您的参赛作品belongs_to :blog

另请注意,您仍然可以访问某种SQL接口,但是,您应始终确保joins|includes|eager_load要查询的关联,以及我加入blog的方式

Entry.joins(:blog).where("blogs.name = ?", "Beatles Blog")

使用命名参数

Entry.joins(:blog).where("blogs.name = :blog_name", blog_name: "Beatles Blog")

希望我能够提供帮助。

答案 1 :(得分:0)

希望这会对你有所帮助。

Entry.where(blog__name: "Beatles Blog")

假设blog__name是列名