Ruby on rails 选择并拉入命中相同SQL查询但结果不同的rails

Ruby on rails 选择并拉入命中相同SQL查询但结果不同的rails,ruby-on-rails,ruby,Ruby On Rails,Ruby,我正在rails控制台中点击以下查询: Listing.joins(:colors, :sizes, :product, :orders).pluck('colors.id', 'sizes.id', 'products.id', 'orders.id') (4.5ms) SELECT colors.id, sizes.id, products.id, orders.id FROM "listings" INNER JOIN "colors" ON "colors"."listing_i

我正在rails控制台中点击以下查询:

Listing.joins(:colors, :sizes, :product, :orders).pluck('colors.id', 'sizes.id', 'products.id', 'orders.id')
   (4.5ms)  SELECT colors.id, sizes.id, products.id, orders.id FROM "listings" INNER JOIN "colors" ON "colors"."listing_id" = "listings"."id" INNER JOIN "sizes" ON "sizes"."listing_id" = "listings"."id" INNER JOIN "products" ON "products"."id" = "listings"."product_id" INNER JOIN "orders" ON "orders"."listing_id" = "listings"."id"

分别得到以下结果:

[[2, 3, 1, 1], [2, 3, 1, 2], [2, 2, 1, 1], [2, 2, 1, 2], [2, 1, 1, 1], [2, 1, 1, 2], [3, 3, 1, 1], [3, 3, 1, 2], [3, 2, 1, 1], [3, 2, 1, 2], [3, 1, 1, 1], [3, 1, 1, 2], [4, 3, 1, 1], [4, 3, 1, 2], [4, 2, 1, 1], [4, 2, 1, 2], [4, 1, 1, 1], [4, 1, 1, 2]]


请帮忙,这让我很困惑。

您混淆了“拔毛”和“选择”的用法

选择“指定结果集中需要的字段”。但它将匹配结果集作为ActiveRecord对象数组返回

#<ActiveRecord::Relation [#<Listing id: 1>, #<Listing id: 2>, ...

你混淆了“拨弄”和“选择”的用法

选择“指定结果集中需要的字段”。但它将匹配结果集作为ActiveRecord对象数组返回

#<ActiveRecord::Relation [#<Listing id: 1>, #<Listing id: 2>, ...

您对Pull和select提供的结果格式感到困惑。在简单数组中获取返回结果,其中选择活动记录关系的返回数组。这就是为什么不同的格式会得到相同的结果

希望它能消除你的疑虑

拔毛输出:

选择的输出:


您对Pull和select提供的结果格式感到困惑。在简单数组中获取返回结果,其中选择活动记录关系的返回数组。这就是为什么不同的格式会得到相同的结果

希望它能消除你的疑虑

拔毛输出:

选择的输出:


Pull返回一个数组,select返回对象,在本例中,一些ListingPull返回一个数组,select返回对象,在本例中,一些Listings虽然结果相同,但Pull确实不会创建活动记录对象,这是它的一半,而结果相同,Pulk从来不会创建活动记录对象,事实上,这就是它的一半意义
#<ActiveRecord::Relation [#<Listing id: 1>, #<Listing id: 2>, ...
[[2, 3, 1, 1], [2, 3, 1, 2], [2, 2, 1, 1], [2, 2, 1, 2],...
[[2, 3, 1, 1], [2, 3, 1, 2]..]
#<ActiveRecord::Relation[#<Listing id: 1>, #<Listing id: 2>..]