2

使用 rails 3,如何在没有复杂的东西或额外的宝石的情况下执行多个 where 语句?

我有此列“已接受”,并希望获取所有接受 == false 和接受 == null 的值

以下两个示例均失败:

    @scholars = Scholars.where(:scholar_id => current_user.id).where(["accepted = ? or accepted = ?", true, null])

    @scholars = Scholars.where(:scholar_id => current_user.id).where(:accpeted => true).where(:accepted=> null)
4

2 回答 2

3

尝试:

@scholars = Scholars.where(:scholar => current_user, :accepted => true).all + 
            Scholar.where(:scholar => current_user, :accepted => nil).all

你把你的模特命名为“学者”吗?模型传统上是单数的......如果你正确命名它,它应该是Scholar.where(...).

于 2013-01-25T21:45:04.503 回答
1

正确答案应该是

@profiles = Profile.where(:user_id => current_user.id, :accepted => [true, nil]).order(:accepted)
于 2013-02-01T09:50:15.480 回答