我试图在控制器中做一个简单或声明
这会产生一组我有兴趣展示的行程并且工作正常。
@trips = Trip.where(:userid => @friends)
但是,我想添加另一组旅行;其用户名== current_user.id
的旅行@trips = Trip.where(:userid => current_user.id)
尝试结合这两个我试过......
@trips = Trip.where(:conditions => ['userid= ? OR userid=?', @friends, current_user.id])
知道胸围在哪里吗?提前谢谢。
答案 0 :(得分:1)
只需传递一个数组即可获得SQL WHERE ... IN
子句的等价物。
Trip.where(userid: [@friends, current_user.id])
参见ActiveRecord Rails Guide,2.3.3子集条件
答案 1 :(得分:0)
@friends
是一个数组吗?当您使用哈希语法生成它时,ActiveRecord会将您的where语句转换为SQL IN
子句。在原始SQL中构建OR语句时,需要手动执行IN
。
@trips = Trip.where('userid IN ? OR userid = ?', @friends, current_user.id)
此外,您的专栏名为userid
?典型地它会被称为user_id
- 这是一个错字还是你只是有一个异常的数据库?