私はプライベート メッセージ システムを作成しており、メッセージがどこにあるかを知るためにステート マシンを使用しています。
これは私のモデルです:
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º 送信者と受信者のユーザーへのメッセージの初期状態は?
申し訳ありませんが、私はstate_machine gemの初心者です
どうもありがとうございました