2
關於my last attempted answer,我可以實現我想要的。一旦應用程序工作,我發現有一些不同之處:只有創建消息併發送消息的人才會顯示。如果我回復,我沒有看到答覆,我知道這個問題。顯示消息陣列中的最後一條消息
我消息模型表:[:id, :user_id, :to, :body, ...]
:user_id
,它是用於確定誰創建的消息將類似於from
。
User 1
將是客戶端,User 2
是學生。學生髮送消息給客戶。只有我的客戶端的代碼是這樣的:
#Controller Index:
@messages = Message.where(to: current_user.id) # My replies are not included here
.order(user_id: :asc, created_at: :desc)
.select('distinct on (user_id) *')
我說給我來說那是給我(:to
)的1
一個ID的所有消息。
由於:to
列,我不會看到我的回覆。
我(客戶端)的答覆是這樣的:
to: #student id
user_id: #client id
和學生信息:
to: #client id
user_id: #student id
所以因爲to
現在都指向一個ID,讓我們說2
我不會看到答覆。我可能需要改變模型,但如果你看到一個簡單的方法,請讓我知道。
編輯:
回答這個偉大工程:
@messages = Message.where(to: current_user.id).or(Message.where(user_id: current_user.id))
.order(connection: :desc, created_at: :desc)
.select('distinct on (connection) *')
越來越'語法錯誤,意外')'' – Sylar
是的,你的代碼給了我最後的回覆,在控制檯中,但打破了我的帖子中的代碼,這是鏈接中的答案。 – Sylar
我已經將'.or()'添加到了我現有的代碼中,就是這樣。謝謝! – Sylar