如何在导轨中选择不同的行

问题描述 投票:1回答:1

total_site模型具有project_iduser_idtotal_site_id列。我能够访问属于登录的current_user的site。现在我想访问project_id不同的列,但我得到相同project_id的重复。我如何解决Rails中的这个问题。这是我的代码-

projects_controller.rb

 def new

    @projects = TotalSite.where(user_id: current_user.id) #here is want distinct project_id column

    @sites = TotalSite.where(user_id: current_user.id)
end 

form.html.erb

        <div class="field medium-4 columns">
          <%= form.label :select_project,:class=>"required" %>
          <%= form.collection_select :project_id, @projects, :id, :project_id, prompt: true %>
        </div>

        <div class="field medium-4 columns">
          <%= form.label :select_site,:class=>"required" %>
          <%= form.collection_select :site_id, @sites, :id, :name, prompt: true %>

        </div>
ruby-on-rails ruby-on-rails-5
1个回答
0
投票

假设您有一个模型Project,根据您的描述has_many :total_sites

[total_site模型具有project_id

如果您希望您的@projects是当前用户的所有唯一项目ID,则

@projects = TotalSite.where(user_id: current_user.id).distinct.pluck(:project_id)

如果您希望它是实际的Project记录,则

Project.joins(:total_sites).where(total_sites: { user_id: current_user.id }).distinct
© www.soinside.com 2019 - 2024. All rights reserved.