0
Companies(has_many) -> (belongs_to)Clients(has_many) -> (belongs_to)Properties
獲取列表下去是很容易做到:
company.clients -> shows all clients for that company
client.properties -> show all properties for that client
我想要做的是顯示出所有屬性(路線:properties_path ),但只適用於1家公司,並在視圖中提供客戶鏈接。
我有幾個解決方案:
- 寫在SQL右外連接(使用的SQLite在我的開發ENV所以需要postgress得到它的工作)
- 蠻力循環:讓所有的客戶那家公司,然後在1個散列
SO 3 M取每個客戶端的所有屬性Ÿ問題是有沒有更優雅的軌道方式來做到這一點,我錯過了?
我已探索包括。但是,這是我的問題:
[4] pry(main)> @company = Company.includes(clients: [:properties]).find(1)
Company Load (0.2ms) SELECT "companies".* FROM "companies" WHERE "companies"."id" = ? LIMIT 1 [["id", 1]]
Client Load (3.5ms) SELECT "clients".* FROM "clients" WHERE "clients"."company_id" IN (1)
Property Load (5.9ms) SELECT "properties".* FROM "properties" WHERE "properties"."client_id" IN (2, 12)
=> #<Company id: 1, name: "coolDEVOPS2", created_at: "2014-10-31 11:05:05", updated_at: "2014-11-25 09:27:38">
[5] pry(main)>
我沒有得到的屬性回來?
解決:我傻它的存在IRB /撬只打印第一記錄:)
@ company.properties工程:)
我一直探索包括之前。但即使通過::客戶端,我只能獲取公司數據,而不是屬性。 – gtheys 2014-12-05 09:57:10
也使用.select,似乎沒有得到結果...也許我做錯了。 – gtheys 2014-12-05 10:04:35
你不應該需要has_many通過加載。 – 2014-12-05 13:19:56