Yêu cầu thg 2 28, 2018 10:13 SA 114 0 2
  • 114 0 2
0

ROR lấy list array

Chia sẻ
  • 114 0 2

Mình có 2 model:

User: has_many :reviews

Review: belongs_to :user

Mình dùng mongodb, đây là bản ghi Review mẫu: { "_id" : ObjectId("5a6eba8d440647036e000001"), "short_description" : "", "description" : "3 sao ", "rating" : 3, "user_id" : ObjectId("5a685dea4406470449000000"), "course_id" : ObjectId("58412131ce4b1436fa7ad1c0"), "is_enable" : false, "updated_at" : ISODate("2018-02-28T06:54:48.927Z"), "created_at" : ISODate("2018-01-29T06:09:17.074Z") } Mình muốn lấy list review và thêm 1 thuộc tính email trong mỗi bản ghi, email thì thuộc model User Hướng mình làm như sau: @reviews = Review.all rồi sử dụng .map để thêm thuộc tính .email vào mà không được, help me!!!

2 CÂU TRẢ LỜI


Đã trả lời thg 3 16, 2018 4:37 SA
+1

Bạn có thể sử dụng Eager loading của Mongoid trong case này

collection = Review.includes(:user)  # Eager load, giống với ActiveRecord 
collection.map do |review|
  review.as_json.merge("email" => review.user.email)
end
Chia sẻ
Đã trả lời thg 3 2, 2018 9:19 SA
0

bạn thử @reviews = Review.all.map{|review| review.as_json.merge!(email: "test")} xem. như vậy nó sẽ là 1 mảng của các hash nên nó k còn là 1 object review nữa

Chia sẻ
Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí