Tôi không thể đạt được kết quả mong muốn với các phương thức Ruby thông thường để loại bỏ tất cả các đối tượng trùng lặp khỏi mảng, user_list, bên dưới. Có cách nào thông minh để giải quyết vấn đề này không?Ruby loại bỏ các đối tượng trùng lặp khỏi mảng
users = []
user_list.each do |u|
user = User.find_by_id(u.user_id)
users << user
#users << user unless users.include?(user) # does not work
end
#users = users.uniq # does not work
'uniq' thực sự nên làm việc. Bạn có thể hiển thị các bước bạn đã thực hiện để kiểm tra và kết quả của bạn không? Lớp của các đối tượng trong mảng của người dùng là gì và toán tử '==' được định nghĩa như thế nào? Đây có phải là Ruby on Rails không? –
Bạn đang sử dụng 'Rails 4' hoặc' Rails 3'? Oh phải, bạn đang sử dụng đường ray ở tất cả? Nếu không, lớp 'User' là gì? – nzifnab
Xin chào các bạn, đây là một báo động giả! Tôi đã gọi phương thức với dữ liệu ở định dạng sai. users.uniq thực sự đang hoạt động! Cảm ơn bạn đã giúp đỡ. – user2041343