2016-10-19 2 views
-1

У меня есть приложение для рельсов с моделями пользователей, приложений и обзоров. Когда пользователь посещает страницу показа приложения, я получаю все отзывы для приложения как @app.reviewsВытащить записи из модели по индивидуальному заказу

Ассоциации. ,

пользователя -> has_many: отзывы, has_many: приложения

Обзор -> belongs_to: приложение, belongs_to: пользователь

App -> has_many: отзывы, belong_to: пользователь

Я хотел бы вы получите все обзоры с обзором current_user в верхней/первой. Как это можно сделать?

+0

Просьба поставить вопрос таким образом, который может быть легко понятен всем .... :) путем добавления более подробной информации ... – Milind

+0

Привет и приветствуем переполнение стека. Вы прочитали действительно отличный Rails Guide, который охватывает все детали использования интерфейса запросов Rails? Он ответит на ваш вопрос, а также поможет вам повысить уровень в Rails: http://guides.rubyonrails.org/active_record_querying.html –

ответ

0

Для этого вы можете использовать ActiveRecord. Вы уже используете его, чтобы получить все обзоры для этого конкретного приложения. Вы можете пойти дальше и использовать:

@app.reviews.where(user_id == current_user.id) 

где current_user был вашим пользователем. Сопротивления belongs_to и has_many помещают эти идентификаторы туда, чтобы вы могли их использовать.

Поскольку вы собираетесь сделать это так, что отзывы на current_user в упорядочиваются первых, вы могли бы сделать следующие шаги:

  1. Получить все отзывы для приложения, где user_id = current_user.id, хранить в массиве! ,
  2. Найти отзывы о current_user, сохранить в другом массиве.
  3. Сначала объедините два массива с обзорами current_user, получив один массив со всеми отзывами для приложения, но с последними заказами current_user, заказанными первыми.