Tôi cần người dùng có thể trở thành người hâm mộ của những người dùng khác. Làm thế nào tôi nên thiết kế/thiết lập này?Hướng dẫn: Người dùng có người hâm mộ
Tôi cần có thể xem chi tiết người hâm mộ của người dùng.
Ví dụ: Tôi có người dùng: Foo. Foo có 3 người hâm mộ. Tôi muốn có thể tìm thấy tên của các fan của Foo. Như vậy:
foo = User.first
foo.name (returns 'Foo')
foo.fans.first.user.name (should return 'bar', since 'bar' is a fan of 'foo')
Đây là cách tôi đã thiết lập nó vào lúc này:
User model:
embeds_many :fans
references_many :fans
Fan model:
embedded_in :user, :inverse_of => :fans
referenced_in :user
In console, I do:
User.first.fans.create!(:user => User.first)
và tôi nhận được: Mongoid :: lỗi :: InvalidCollection: Truy cập vào bộ sưu tập cho Fan là không được phép vì đây là tài liệu được nhúng, vui lòng truy cập bộ sưu tập từ tài liệu gốc. Tôi nghĩ rằng vấn đề là, bởi vì mô hình quạt được nhúng vào trong mô hình người dùng có tự tham chiếu đến mô hình người dùng ....
Suy nghĩ của bạn sẽ được đánh giá cao.
User.first.fans << User.last trả về Mongo :: OperationFailure: truy vấn không hợp lệ –
Bạn không thể sử dụng 'first' và' last' như thế, và bạn không thể sửa đổi các liên kết tại chỗ như thế. Thông thường, 'User.last' sẽ trả về cùng một thứ với' User.first'! Bạn cần phải làm 'u = User.all.entries.first; u2 = User.all.entries.last; u.fans << u2'. Tôi chỉ thử nghiệm mã này một lần nữa và nó hoạt động cho tôi. – bowsersenior
Và điều này sẽ cho phép tôi có người dùng trở thành một fan hâm mộ của mình là tốt? –