2014-01-22 44 views
0

我有一個消息系統設置,所以當一個新的message被創建時,conversation_id將被創建爲與messageid相關的任何答覆。該conversation_id應該匹配messageid如果有`conversation_id`顯示內容

我的問題是如何顯示每個messages.body與當前的對話ID?我正在嘗試創建一個線程消息傳遞系統。

這裏有一個例子:

我發來消息指出,創建的消息ID 5,沒有對話id(我創建不提供對話id到原始郵件的代碼)。我回復了消息ID 5,並進行了創建消息ID 8,9,10的對話。這三個消息ID具有5的對話ID。

當用戶在視圖中查看消息ID 8時,它也應該顯示消息ID 5,9和10,因爲它是對話的一部分,並且它們的conversation_id爲5(消息ID爲5,除了消息ID 5以外,由於它是原始消息,因此沒有conversation_id顯示)。

控制器:

def show 
    @new_message = Message.new 
     @message = Message.find(params[:id]) 
     @message.readingmessage if @message.recipient == current_user 
    end 
+0

顯示你的模型信息和對話。 – Catfish

+0

@Catfish消息模型已添加。沒有與此收件箱功能相關的對話模型。我在一個不同的會話系統上工作時創建了一個,但是我實現的新代碼是較少的代碼,所以我放棄了這個模型。 –

回答

1

我建議的對話模式,使你可以有一個的has_many關係。在這種情況下,你的問題很容易解決,代碼會更有意義。

如果你不願意這樣做,你可以隨時獲取所有與同一conversation_id消息:

@messages = Message.where(conversation_id: params[:conversation_id]).order(created_at: :desc)} 

GL HF &

+0

謝謝。我將conversation_id更改爲'id',因此它將所有與用戶所在的message_id匹配的conversation_id都拉出來。 –

+1

偉大的工作!您的編輯建議會使答案混淆,因爲它只適用於您的數據模型,無視慣例。 (Rails完全是慣例)。 – rlecaro2