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,因为当前 2 个元素的 user_id 相同,即 2,我只希望它在哈希中一次,我该怎么办?

4

2 回答 2

2

这是一个示例示例,可让您有一个良好的开端:

h = [ { a: 2, b: 3}, { a: 2, c: 3 } ]
h.uniq { |i| i[:a] }
# => [{:a=>2, :b=>3}]
于 2013-06-21T20:01:30.267 回答
2

这似乎是模型和模型之间的has_many关系,对吧?如果我对您的理解正确,那么您实际上需要按以下方式分组:UserEstateEstateuser_id

PostgreSQL:

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

MySQL:

 Estate.group(:user_id).all

PS 我不建议从数据库中选择所有记录,然后使用 Ruby 处理它们,因为数据库以更有效的方式处理数据操作。

于 2013-06-22T15:33:24.223 回答