繁体   English   中英

Rails 4 Active Record加入并包含不起作用

[英]Rails 4 Active Record Joins and Includes not working

我有两个模型:Place和Subfilter

class Place < ActiveRecord::Base
  belongs_to :subfilter
end

class Subfilter < ActiveRecord::Base
  has_many :places
end

以下两个查询返回与Place.all相同的值

  1. Place.joins(:subfilter)
  2. Place.includes(:subfilter)

救命! 让我知道您是否需要更多信息。

它应该产生相同的结果,但是这两个语句做的事情并不完全相同。

Place.joins(:subfilter)

产生以下SQL

SELECT places.* FROM places INNER JOIN subfilters ON subfilters.place_id = places.id

Place.includes(:subfilter)

产生2条SQL语句

SELECT places.* FROM places

SELECT subfilters.* FROM subfilters

包括有助于快速加载,也就是说,如果您想遍历各个地方,例如

@places.each do |place|
   puts place.subfilter.name
end

您可以在联接表和急切加载下阅读有关此内容的更多信息。 http://guides.rubyonrails.org/active_record_querying.html#joining-tables

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM