【问题标题】:Scope a model using several queries, Rails 4使用多个查询确定模型的范围,Rails 4
【发布时间】:2014-11-22 18:44:26
【问题描述】:

我对 Rails 很陌生。

我有一个包含参与者和参与者类别的应用。我正在为属于“1”类或“8”类的参与者创建一个命名范围。我想要一个/或类型查询。这似乎很基本......但我很难在 SO 上找到答案。

这是我现在的位置:

scope :organizer, -> { where(cat_id: 1 or cat_id: 8)}

【问题讨论】:

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


    【解决方案1】:

    试试这个:

    scope :organizer, -> { where('cat_id = ? or cat_id = ?', 1, 8) }
    

    这里有什么问题:

    您尝试混合使用 SQL 运算符 OR 和 ruby​​ 方法调用。

    用于rails console中的未来研究测试查询:

    => User.where(first_name: 'Foo').to_sql
    #> "SELECT \"users\".* FROM \"users\"  WHERE \"users\".\"first_name\" = 'Foo'"
    => User.where(first_name: 'Foo' or last_name: 'faw').to_sql
    SyntaxError: unexpected keyword_or, expecting ')'
    User.where(first_name: 'Foo' or last_name: 'faw').to_sql
                               ^
    

    【讨论】:

    • 是的!我已经看到过这种查询,现在我确切地知道它的用途。谢谢。尽快接受。
    • 很好的解释..真的很感激..+1
    猜你喜欢
    • 2017-08-29
    • 2021-07-02
    • 2014-06-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-04
    • 1970-01-01
    • 2021-10-03
    相关资源
    最近更新 更多