Rails 4 + Mongoid + API调用 - 无法定义很少的条件

时间:2016-04-27 08:18:37

标签: api ruby-on-rails-4 mongoid

在我的Rails应用程序中,我正在尝试为一个模型构建API,但我无法执行少量方法。难道不知道哪里出错了。请提出建议。

模型 - 用户

class User
  include Mongoid::Document
  include Mongoid::Timestamps

  field :name, type: String
  field :display_name, type: String
  field :user_type, type: String
  field :city_id, type: String
  field :country_id, type: String
  field :tags, type: String    
  field :status, type: Mongoid::Boolean
  field :rating, type: Array
end

API 1. 所有用户列表 - User.All

但我无法选择列名。尝试在模型中定义范围但仍然给出错误。即。

  

User.selected_column

scope :selected_column, -> { select("id, name") }

API 2. 评分最高的用户列表 - User.rating_five

在模型中尝试定义范围但仍然给出错误。即。

  

User.rating_five

scope :rating_five, -> { .where(:rating["average"] > 4.6 ) }

1 个答案:

答案 0 :(得分:0)

在某些情况下,Mondoid DSL与Activerecord有点不同。请参阅此处的官方documentation

第一期:

scope :selected_column, -> { only(:id, :name) }

为了选择特定的列。

对于第二个问题,请尝试

scope :rating_five, -> { gt('rating.average': 4.6) }

此处gt代表greater than