arasındaki ilişkiden seçilen sütunları içerir. Açıklamaya çalışacağım:Raylar, yalnızca
Tablo 'Ürünüm' ve 'Mağaza' tablom var. Sadece sayfada göstermek için mağaza adını almaya çalışıyorum, ancak ActiveRecord bana tüm sütunları mağazadan geri veriyor.
@product = Product
.order(id: :desc)
.includes(:store)
.select("products.id, products.store_id, stores.name")
.limit(1)
(Raylar itibaren) inşa sorgu: İşte
kodudurProcessing by IndexController#index as HTML
Product Load (0.0ms) SELECT products.id, products.store_id FROM `products` ORDER BY `products`.`id` DESC LIMIT 1
Store Load (1.0ms) SELECT `stores`.* FROM `stores` WHERE `stores`.`id` IN (111)
Sadece ürünün mağaza adını göstermek istiyorum, ama Raylar tüm mağaza sütunları seçmektir.
Benim modeller:
Product.rb
class Product < ActiveRecord::Base
belongs_to :store, :foreign_key => 'store_id'
end
Store.rb:
class Loja < ActiveRecord::Base
has_many :products
end
Herhangi ideia?
Verdiğiniz SQL doğrudan AR kullanarak yazılabilir. –
Ancak, pluck ile artık bir nesne olmayacak, değil mi? –
@HerlonAguiar bu doğru, bir dizi değer döndürecek. Bu, pluck ve select'in dezavantajlarından biri. –