2013-06-21 127 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.感谢您的帮助真的很感谢 –