Ruby on rails Rails控制器索引仅显示具有关联的对象
我有一个Rails模型,名为Ruby on rails Rails控制器索引仅显示具有关联的对象,ruby-on-rails,ruby,controller,Ruby On Rails,Ruby,Controller,我有一个Rails模型,名为User。有两种不同类型的用户。一些用户在一个单独的表中有company\u profiles 在我的页面视图的控制器中,我只想显示那些拥有公司\ U配置文件的用户。我还想显示他们的用户信息和他们的公司简介信息 我不确定如何在控制器和视图中处理此问题 我的索引方法应该是什么 def index @users = User.scoped # ????? end 我如何在索引页面上循环每个用户的公司简介 <% @users.each do |user| %&g
User
。有两种不同类型的用户。一些用户在一个单独的表中有company\u profiles
在我的页面视图的控制器中,我只想显示那些拥有公司\ U配置文件的用户。我还想显示他们的用户信息和他们的公司简介信息
我不确定如何在控制器和视图中处理此问题
我的索引方法应该是什么
def index
@users = User.scoped # ?????
end
我如何在索引页面上循环每个用户的公司简介
<% @users.each do |user| %>
<p>
<%= user.email %>
<%= user.company_profile.poc_first_name %>
</p>
<% end %>
从数据库加载记录时,进行内部联接应能正常工作:
def index
@users = User.joins(:company_profile)
end
现在您提到您只想向用户显示存在哪个公司的配置文件。因此,在控制器方法中,应在索引方法中执行以下操作
def index
@users = User.left_outer_joins(:company_profile).where("company_profiles.id is NOT NULL")
end
然后在您的视图中,您可以获得公司的poc名称,如下所示
<% @users.each do |user| %>
<p><%= user.email %>
<%= user.company_profile.poc_first_name %>
</p>
<% end %>
为什么左侧外部连接可能重复,但删除右侧的空行?这基本上不是一个内部连接吗?