如何仅显示那些未与 rails 中的项目链接的用户

How can show only those user who is not linked with project in rails

我试图只显示那些没有链接到项目的开发人员,但它总是显示一个已经链接的开发人员

ProjectDeveloper 是具有项目和开发者 ID 的模型 用户有一列用户类型,类型是枚举,包含开发人员经理和 qa

控制器

 def index

    @users = User.where(user_type: 'Developer')
    @project_developer = ProjectsDeveloper.where.not(id: @users.ids)
    project_id = params['project_id'].to_i
    @project_id = Project.find(project_id)
 end

html.erb

<% @project_developer.each do |user| %>
   <h3><%=user.developer_id %></h3>

   <%=button_to 'Assign' , projects_developer_index_path({project_id: @project_id.id, developer_id: user.id}),
         method: :post %><br>
<% end %>

试试这个方法:

def index
    @project = Project.find(params['project_id'].to_i)
    @project_developer = project.projects_developers.pluck(:developer_id)
    @users = User.where(user_type: 'Developer').where.not(id: @project_developer)
 end

并在视图中使用@users 实例来显示开发人员。

<% @users.each do |user| %>
   <h3><%=user.id %></h3>

   <%=button_to 'Assign' , projects_developer_index_path({project_id: @project_id.id, developer_id: user.id}),
         method: :post %><br>
<% end %>