Mam następujące dwa modele:Szyny gwintowane Prywatne wiadomości
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
Każdy użytkownik może mieć jedną rozmowę z innym użytkownikiem i wszystkie odpowiedzi powinny być gwintowany z oryginalnej wiadomości.
W moim działaniu kontrolera "indeks" w jaki sposób mogę wysyłać zapytania zarówno do wysłanych wiadomości, jak i odebranych wiadomości? Na przykład, jeśli użytkownik 1 trafi "/ users/2/messages /", powinien zobaczyć całą konwersację między użytkownikiem 1 i użytkownikiem 2 (niezależnie od tego, kto wysłał pierwszą wiadomość). Czy muszę dodać model "wątku" lub czy istnieje sposób, aby to osiągnąć przy mojej obecnej strukturze?
Dzięki.
Szukałem sposobu na proste rozmowy między 2 użytkownikami, gdy to znalazłem. Wygląda na to, że to zadziała. Dzięki! Ale czy nie powinno to być 'has_many: conversations,: through =>: participants' w modelu użytkownika? – Vickash
Masz rację co do brakującego ': through' w modelu użytkownika. Powinien także mieć 'has_many: participants'. – tadman
Właśnie użyłem tego modelu w mojej aplikacji, ale naprawdę staram się napisać sterownik do tworzenia i odpowiadania na wiadomości. Czy jest jakaś szansa na prosty przykład? Mogę zacząć to jako nowe pytanie, jeśli to lepiej. – Dave