Re: [問題] includes or joins???

看板Ruby作者 (Egg)時間13年前 (2011/09/08 15:29), 編輯推噓1(102)
留言3則, 1人參與, 最新討論串2/5 (看更多)
※ 引述《kewang (617公車)》之銘言: : 環境: : Ruby 1.9.2, Rails 3.1.0 : 狀況: : Migration: : User(name, laptop_id) : Laptop(serial, color, lcd_size) : Model: : User Model => belongs_to :laptop : Laptop Model => has_many :users : 現在有一個困擾我兩天的問題,我想要用下面的方式將User及對應的Laptop : 都抓出來(user.name, laptop.serial, laptop.color, laptop.lcd_size), : 但是無論我如何試都是一樣只會出現User或是Laptop其中一種。不知道大家是 : 如何解決這個問題的呢? : User.joins(:laptop).select("users.*, laptops.*") : User.includes(:laptop).select("users.*, laptops.*") : 在stackoverflow上面找了一堆文章,全部都試過了,沒有一個是可以用的 囧rz 用法應該像是 user = User.includes(:laptop).first user.laptop.color # for example 這樣在第一次 query 的時候 ActiveRecord 就會做 join 的動作 所以總共只有一次 query -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.112.30.133

09/08 15:59, , 1F
這樣子寫我知道可以,可是我想讓user可以顯示全部的欄位,
09/08 15:59, 1F

09/08 16:00, , 2F
因為我要to_json,照文中的寫法會無法顯示laptop.*,只會出
09/08 16:00, 2F

09/08 16:00, , 3F
現user.name, user.laptop_id而已
09/08 16:00, 3F
文章代碼(AID): #1EQ6xqIJ (Ruby)
討論串 (同標題文章)
文章代碼(AID): #1EQ6xqIJ (Ruby)