2013-06-21 207 views
1

我有一個哈希@estate:獲得獨特的內容

[#<Estate id: 1, Name: "Thane ", Address: "Thane St.", created_at: "2013-06-21 16:40:50", updated_at: "2013-06-21 16:40:50", user_id: 2, asset_file_name: "DSC02358.JPG", asset_content_type: "image/jpeg", asset_file_size: 5520613, asset_updated_at: "2013-06-21 16:40:49", Mgmt: "abc">, 
    #<Estate id: 2, Name: "Mumbai", Address: "Mumbai St.", created_at: "2013-06-21 19:13:59", updated_at: "2013-06-21 19:14:28", user_id: 2, asset_file_name: "DSC02359.JPG", asset_content_type: "image/jpeg", asset_file_size: 5085580, asset_updated_at: "2013-06-21 19:13:57", Mgmt: "abc">] 

是否有可能作出有根據user_id: 2唯一值新的Hash,因爲目前2元有USER_ID相同,即2,我只需要一次在哈希中,我該怎麼辦?

+0

我看到房地產編號和用戶標識爲兩個,那裏有重複? –

+2

顯然,@estate的輸出是一個'Array'對象,而不是'Hash'。 –

+1

好吧,我看到兩個有關Estate的活動實例,其中一個的房地產ID爲1,另一個房地產ID爲2.他們每個人的user_id都是2.你究竟想要用這些做什麼?他們是不同的房地產記錄與相同的用戶ID。 「我只是想要一次在哈希」對我來說不清楚。 – lurker

回答

2

這似乎是像User模型和Estate模型之間的關係has_many,對不對?如果我理解正確的你,比你實際上需要將你的Estateuser_id

的PostgreSQL:

Estate.select('DISTINCT ON (user_id) *').all 

的MySQL:

Estate.group(:user_id).all 

附:我不建議從數據庫中選擇所有記錄,然後使用Ruby處理它們,因爲數據庫以更有效的方式處理數據操作。

+0

謝謝!!!你的解決方案對我很好!我使用MySql –

+0

很高興幫助:) – trushkevich

2

這裏是一個樣本例子讓你一個良好的開端:

h = [ { a: 2, b: 3}, { a: 2, c: 3 } ] 
h.uniq { |i| i[:a] } 
# => [{:a=>2, :b=>3}] 
+0

它在軌道控制檯中工作得很好,但是當我在控制器中使用它時,我不知道最新的錯誤,我也嘗試在調試模式下,但它不工作 –

+0

:P.感謝您的幫助真的很感謝 –