我有两个模型Client和Project .
型号
class Project < ApplicationRecord
belongs_to :client
end
class Client < ApplicationRecord
has_many :projects
end
我在客户端和项目表中有以下记录:
我想显示一个带有客户端名称的项目记录 . 我的控制器需要什么查询?
控制器
class ProjectsController < ApplicationController
def index
@projects = #your query here
end
end
3 回答
我假设您的rails版本> 5
使用上面的查询,您将在单个项目
client_name
中获得另一个属性,其中包含项目's client name. If you want to do on application level You can go with ray'的答案,如果您想在数据库级别上执行,则可以在上面查询在模型中做以下
为了避免控制器中的N 1查询,
现在,您可以像Project对象一样调用
project.client_name
我认为没有理由使用
JOIN
查询 . 但我建议使用includes来避免N 1查询 .