개인 메시지 시스템을 만들고 있는데 메시지가 어디에 있는지 알기 위해 상태 시스템을 사용하고 있습니다.state_machine inbox 및 보낸 메시지
class Message
include Mongoid::Document
include Mongoid::Timestamps::Created
#fields
field :subject, :type => String
field :body, :type => String
field :place, :type => String
field :has_been_read, :type => String
# Relationships
belongs_to :sender, :class_name => 'User', :inverse_of => :messages_sent
belongs_to :receiver, :class_name => 'User', :inverse_of => :messages_received
#state machine has been read message?
state_machine :has_been_read, :initial => :unread do
event :read_message do
transition :from => :unread, :to => :read
end
event :mark_unread do
transition :from => :read, :to => :unread
end
end
#state machine status can be in_box, sent, draft, trash, spam
end
사용자 모델 :
이 내 모델입니다
class User
include Mongoid::Document
include Mongoid::Timestamps::Created
.
.
.
has_many :messages_sent, :class_name => 'Message', :inverse_of => :sender
has_many :messages_received, :class_name => 'Message', :inverse_of => :receiver
.
.
.
end
1º 어떻게 할 수있는 메시지가 sent
또는 inbox
장소에서 동시에입니까?
2º 발신자와 수신자 사용자에게 어떤 초기 상태 메시지가 있습니까?
죄송와 초보자가 당신에게 그것은 당신이 (상태 및 배송 상태를 읽기) 여기에 두 가지를 추적하려는 당신이 현재 결합하는 것처럼 보이는
대단히 감사합니다! – hyperrjas
내 기쁨. 다행히 도왔다. –