选择不是current_user.id的属性

时间:2014-02-17 21:18:47

标签: ruby-on-rails activerecord ruby-on-rails-4

我在Rails中创建了一个消息传递系统,为了显示对话伙伴,我从包含current_user的消息中获取了他们的ID:

Message.where("to_id = ? or user_id = ?", current_user.id, current_user.id)

但是,由于我需要 来自该查询的其他用户ID,我需要选择它,我想选择:to_id或{{1 } 等于:user_id

类似的东西:

current_user.id

提前谢谢!

编辑:这是简化的消息表:

Message.where("to_id = ? or user_id = ?", current_user.id, current_user.id).select(:to_id, :user_id unless current_user.id)

1 个答案:

答案 0 :(得分:0)

如果您只是想获取ID:

 Message.where("to_id = ? or user_id = ?", current_user.id, current_user.id).
      map { |m|
         m.user_id == current_user.id ? m.to_id : m.user_id
      }

这会给你和像

这样的数组
# => [3771, 3611, 3749, 3638, 3697, 3786]