Tôi có hai mô hình sau:Rails luồng nhắn tin
class Message < ActiveRecord::Base
belongs_to :to_user, :class_name => 'User'
belongs_to :from_user, :class_name => 'User'
has_ancestry #Using the 'ancestry' gem
end
class User < ActiveRecord::Base
has_many :messages_received, :class_name => 'Message', :foreign_key => 'to_user_id'
has_many :messages_sent, :class_name => 'Message', :foreign_key => 'from_user_id'
end
Mỗi người dùng được phép có một cuộc trò chuyện với một người dùng khác và tất cả các thư trả lời nên được luồng từ thư gốc.
Trong hành động của bộ điều khiển 'chỉ mục', tôi làm cách nào để truy vấn cả tin nhắn đã gửi và tin nhắn đã nhận? Ví dụ: nếu User1 truy cập '/ users/2/messages /' họ sẽ thấy toàn bộ cuộc hội thoại giữa user1 và user2 (bất kể ai đã gửi thư đầu tiên). Tôi có cần phải thêm một mô hình 'Chủ đề' hoặc có cách nào để thực hiện điều này với cấu trúc hiện tại của tôi không?
Cảm ơn.
Đã tìm cách tạo cuộc hội thoại đơn giản giữa 2 người dùng khi tôi tìm thấy điều này. Có vẻ như nó sẽ hoạt động. Cảm ơn! Nhưng không nên là 'has_many: cuộc hội thoại,: qua =>: người tham gia' trong Mô hình người dùng? – Vickash
Bạn đang đúng về thiếu ': qua' trong mô hình Người dùng. Nó cũng phải có 'has_many: particip'. – tadman
Tôi vừa mới sử dụng mô hình này trong ứng dụng của mình nhưng tôi thực sự đang gặp khó khăn để có được một bộ điều khiển được viết để tạo và trả lời tin nhắn. Có cơ hội của một ví dụ đơn giản không? Tôi có thể bắt đầu nó như một câu hỏi mới nếu điều đó tốt hơn. – Dave