使用多个查询来定义模型,Rails 4

时间:2014-11-22 18:44:26

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

我对rails很新。

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

我现在就在这里:

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

1 个答案:

答案 0 :(得分:3)

试试这个:

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
                           ^