簡體   English   中英

如何 select 在導軌中區分行

[英]how to select distinct row in rails

total_site model 有project_iduser_idtotal_site_id列。 我能夠訪問屬於 current_user 登錄的site 。現在我想訪問project_id不同的列,但我得到相同 project_id 的重復。 我怎樣才能在rails中解決這個問題。 這是我的代碼-

項目控制器.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 

表格.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>

假設您有一個 model Project ,其中has_many:total_sites來自您的描述:

total_site model 有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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM