0

我正在嘗試爲多對多關係創建複選框。多對多關聯的模糊列名稱

A project可以有很多graphs。 A 可以屬於很多projects

我下面的答案this question,並使用collection_check_boxes()。

<%= collection_check_boxes(:project, :user_graph_ids, UserGraph.all, :id, :title) %> 

結果是不明的列的SQL錯誤。爲什麼會發生?

SQLite3::SQLException: ambiguous column name: created_at: 
    SELECT "user_graphs".id 
    FROM "user_graphs" 
    INNER JOIN "project_user_graphs" 
    ON "user_graphs"."id" = "project_user_graphs"."user_graph_id" 
    WHERE "project_user_graphs"."project_id" = ? 
    ORDER BY created_at DESC 

回答

1

部隊UserGraph.all順序使用created_atuser_graphs表:

<%= collection_check_boxes(:project, :user_graph_ids, UserGraph.all.order("user_graphs.created_at ASC"), :id, :title) %> 

注:我會最終推入UserGraph模型這是一個範圍:

class UserGraph < ActiveRecord::Base 
    def self.ordered(direction="asc") 
    order("user_graphs.created_at #{direction}") 
    end 
end 

<%= collection_check_boxes(:project, :user_graph_ids, UserGraph.all.ordered, :id, :title) %> 
+0

仍不適用於最重要的變化。我以爲你忘了關閉paranethesis ASC後' 「': '<%= collection_check_boxes(:項目:user_graph_ids,UserGraph.all.order(」 user_graphs.created_at ASC「):身份證,:標題)%>' - 錯誤是一樣的 –

+0

有趣的是,我們specifiying UserGraph的順序並不影響SQL查詢也許查詢自動之間的關聯創建項目+ UserGraph –

+0

怪你能張貼在該協會的'?。 ?UserGraph'模型 – steakchaser