2016-04-27 2 views
0

В моем приложении Rails я пытаюсь создать API для одной модели, но я не могу выполнить несколько методов. Не знал, где не так. Пожалуйста, предложите что-нибудь.Rails 4 + Mongoid + 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. Список Top Rated пользователя - User.rating_five

Пробовал в модели, чтобы определить объем, но все еще дает ошибку. то есть.

User.rating_five

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

ответ

0

Mondoid DSL немного отличается от ActiveRecord в некоторых случаях. Обратитесь к официальному documentation.

Первый выпуск:

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

Симметричного выбрать конкретные столбцы.

Для второго вопроса, попробуйте

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

Здесь gt представляет greater than

+0

Позвольте мне проверить, и пусть вы знаете, если я нашел какой-либо вопрос. благодаря – Rubyist