我需要在Event对象的2列中找到用户ID,因此需要使用OR查询。 这样做的正确方法是什么? 下面的代码不起作用。
@event=Event.where((user_id= (current_user.id)) or (user2_id= current_user.id))
答案 0 :(得分:5)
您可以使用
@event=Event.where("user_id= ? or user2_id = ?", current_user.id, current_user.id)
答案 1 :(得分:2)
我建议有一个更好的数据库结构,所以你不需要使用user#{N}_id
来查找用户。
据推测,我会将你所拥有的表分成两个,每个表都有user_id
。您可以粘贴一些代码,因此我可以帮助您。
第二点,似乎模型操作当前在Controller中完成,您可能希望将业务逻辑移动到模型中。
回答你的问题,你可以这样做:
current_user_id = current_user.id query = "select * from events where user_id = #{current_user_id} or user2_id = #{current_user_id}" result = Event.connection.execute(query)
答案 2 :(得分:1)
写为
@event = Event.where("user_id = :uid or user2_id = :uid", {uid: current_user.id})
答案 3 :(得分:0)