我需要使用用户消息(对话框)构建应用程序。我已经通过这种方式解决了这个问题:
应用程序/模型/conversation.rb
class Conversation < ActiveRecord::Base
belongs_to :user
belongs_to :interlocutor
has_many :messages
end
应用程序/模型/message.rb
class Message < ActiveRecord::Base
belongs_to :conversation
belongs_to :user
attr_accessible :message
end
应用程序/模型/user.rb
class User < ActiveRecord::Base
...
def conversations
Conversation.uniq.joins(:messages)
.where("conversations.user_id = ?", self.id)
.where("conversations.interlocutor_id = ?", self.id)
.order("messages.created_at DESC")
end
end
我对对话方法感到困惑。这就像 PHP 方式 - 没有灵活性。
它可以通过rails方式重写吗?也许它可以是AR关系?
谢谢。