Ruby on 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

我有一个Rails模型,名为
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 %>


为什么左侧外部连接可能重复,但删除右侧的空行?这基本上不是一个内部连接吗?