簡體   English   中英

如何從rails中的多個表中選擇列?

[英]How to select columns from multiple table in rails?

我有兩個表 User 和 Order 以及這兩個表之間的關聯如下。

在用戶模型中

  has_many :orders, dependent: :destroy

在訂單模型

  belongs_to :user

我想從訂單表中選擇所有數據,但我想從用戶表中選擇該用戶的名稱而不是 user_id。

我該怎么做? 提前致謝。

您可以簡單地執行以下操作:

orders = Order.where(your_conditions).includes(:user)

進而:

orders.each do |order|
  order.user.name # implies that every order has a user
  # or
  order.user&.name # won't fail if order.user returns nil
end

這稱為預先加載,您可以在此處找到文檔: http : //guides.rubyonrails.org/active_record_querying.html#eager-loading-associations

語句Order.joins(:user).select('orders.*, users.name')獲取訂單及其所有列和同一記錄中的用戶名,表名應以復數形式傳遞選擇指令。

您無需在控制器中進行任何特殊選擇。

在您的控制器中:

@orders =  Order.last(5) # gets 5 most recent orders

在您看來:

@orders.each do |order|
  order.user.name # or order.user.first_name, e.t.c
end

只需從order中訪問用戶。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM