我有两个表User和Order以及这两个表之间的关联如下。
用户模型中的
has_many :orders, dependent: :destroy
订单模型中的
belongs_to :user
我想从订单表中选择所有数据,而不是user_id我想从User表中选择该用户的名称。
我怎么能在铁轨上做? 提前谢谢。
答案 0 :(得分:2)
您可以执行以下操作:
orders = Order.where(your_conditions).includes(:user)
然后:
orders.each do |order|
order.user.name # implies that every order has a user
# or
order.user.try(:name) # won't fail if order does not belong to a user
end
这称为急切加载,您可以在此处找到文档:http://guides.rubyonrails.org/active_record_querying.html#eager-loading-associations
答案 1 :(得分:0)
语句Order.joins(:user).select('orders.*, users.name')
获得命令的所有列以及同一记录中的用户名,表名应在select指令中以复数形式传递。