[英]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
相同的值
Place.joins(:subfilter)
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.