Дуже хороша робота, мені подобається чистота коду, так тримати 🚀
[x] Comment.statuses.keys.include?(params[:status]) - лаконічний та красивий спосіб для даної перевірки, хоча в цілому не надто коректна ідея. Якщо юзер введе некоректний статус - отримає всі коментарі, відповідно для нього це так, наче всі коментарі мають статус, який він ввів.
Для роботи з фільтрацією в RoR використовують query pattern, з ним ми ще попрацюємо пізніше, але можна уже ознайомитись тут
Але так, як у нас всього один пункт для фільтрації - патерн для нас буде надлишковим.
Можна зробити щось типу:
def index
@comments = Comment.all
@comments = Comment.with_status(params[:status]) if params[:status].present?
render json: @comments
end
Якщо параметр фільтрації за статусом не передано - віддаємо всі записи, якщо передано - робимо пошук.
Якщо параметр некоректний - то користувач в результаті отримає порожню вибірку, що цілком логічно.
Дуже хороша робота, мені подобається чистота коду, так тримати 🚀
Comment.statuses.keys.include?(params[:status])
- лаконічний та красивий спосіб для даної перевірки, хоча в цілому не надто коректна ідея. Якщо юзер введе некоректний статус - отримає всі коментарі, відповідно для нього це так, наче всі коментарі мають статус, який він ввів.Для роботи з фільтрацією в RoR використовують query pattern, з ним ми ще попрацюємо пізніше, але можна уже ознайомитись тут
Але так, як у нас всього один пункт для фільтрації - патерн для нас буде надлишковим.
Можна зробити щось типу:
Якщо параметр фільтрації за статусом не передано - віддаємо всі записи, якщо передано - робимо пошук. Якщо параметр некоректний - то користувач в результаті отримає порожню вибірку, що цілком логічно.
[x] пропущений відступ тут
[x] атрибут location передається для редіректу, не думаю, що він нам потрібен в API. Код тут