回答

收藏

显示消息数组中的最后一条消息

技术问答 技术问答 280 人阅读 | 0 人回复 | 2023-09-12

我的 消息    模型有表:[:id,:user_id,:to,:body,...]; |, I# O" A' t4 W6 @+ _
:user_id与from类似的方法来确定新闻创建者。
/ k. D8 B/ U/ ~; V2 WUser 1将是客户,User 2是学生。学生给客户发信息。只有我的客户代码是这样的:" {4 d) x5 _7 s/ n
#Controller Indexmessages = 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)的ID所有消息1。0 U9 H, h% R# h5 R3 f3 Y
由于此:to列,我看不到我的回复。
) C/ r+ y) x* g1 l& J# t" u我的(客户)回复看起来像这样:9 X+ x$ X- _( [
to: #student iduser_id: #client id和学生留言:
' h" R5 u) V3 C2 h+ v4 Z" y! Gto: #client iduser_id: #student id因此,因为to现在指向一个ID,所以我看不到答案。我可能需要更改模型,但如果你找到了一个简单的方法,请告诉我。
/ a' s; k) d# V$ `$ z编辑:
% m( I% E6 Q* d' L$ ~! C答案:效果好:: O' r( p1 _( C  g. z8 F/ q& z. U' N
@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) *             ( x6 H& [" b* P9 {$ {! U) Q4 g
    解决方案:                                                                3 H2 a( {$ b/ I& x8 x4 K' s1 a
                                                                因为你用的是Rails 5,所以可以用or方法:
5 \3 D- G( L7 s# I& ZMessage.where(to: current_user.id).or( Message.where(user_id: current_user.id)).order(connection: :desc,created_at: :desc) .select('distinct on (connection) *
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则