我需要用用戶消息(對話框)構建應用程序。 我已經通過這種方式解決了這個問題:Rails方式用戶對話
應用程序/模型/ 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
應用程序/ models/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關係?
謝謝。
對話foreign_key可以user_id說明或interlocutor_id(user_id是用戶的ID,誰已經開始對話,interlocutor_id是對話的對話者的ID)。所以我需要合併用戶的所有對話(這意味着無論誰開始對話)。 –
嗯..我也不確定我是否從我的第一語言中正確地翻譯了單詞「interlocutor」。它的意思是「談話的另一個成員」:) –