[x] article = Article.find(params[:id]) дублюється в трьох місцях. Для уникнення цього в RoR є можливість створення колбек-методу та його виклику за допомогою фільтрів в контролерах.
Почитайте детальніше тут та спробуйте реалізувати колбек-метод set_article, обрати коректний фільтр для його виклику та прибрати дублювання коду article = Article.find(params[:id]) всередині методів
[x] методи з бенгом (bang - знак оклику !) роблять raise exception в разі невдалого виконання, тому використовувати їх потрібно, точно знаючи, що ми хочемо отримати в raise та робити для цього коректний rescue.
Почитати про ексепшни детальніше можна тут: лінк
[x] недоречне додання поля status в тіло json респонзу, статуси передаються в якості додаткового аргументу методу renderдока
[x] коментарі. їх ми додаємо у випадку, якщо код не є очевидним на перший погляд, або потребує додаткового пояснення причини його додання. У даному випадку - вони зайві. І якщо коментарі в коді - то лише англійською !!!
article = Article.find(params[:id])
дублюється в трьох місцях. Для уникнення цього в RoR є можливість створення колбек-методу та його виклику за допомогою фільтрів в контролерах. Почитайте детальніше тут та спробуйте реалізувати колбек-методset_article
, обрати коректний фільтр для його виклику та прибрати дублювання кодуarticle = Article.find(params[:id])
всередині методівhttps://dannemanne.com/posts/ruby_on_rails_explained_before_action
raise exception
в разі невдалого виконання, тому використовувати їх потрібно, точно знаючи, що ми хочемо отримати в raise та робити для цього коректнийrescue
. Почитати про ексепшни детальніше можна тут: лінкДо прикладу, в даному фрагменті, в разі помилки при апдейті ми ніколи не зайдемо в блок
else
, так як через використання методу з бенгом відбудетьсяraise exception
- https://www.wikitechy.com/tutorials/ruby-on-rails/activerecord-bang-methods-in-ruby-on-railsВикористовуйте CRUD методи без
!
find
також зробить raise exception з NotFound, тому код, написаний в методі show також не працюватиме так, як описано.Почитайте про метод find, а також про те, як правильно робити ruscue для його exception https://apidock.com/rails/ActiveRecord/FinderMethods/find http://rubyjunky.com/never-check-for-an-error-you-dont-know-how-to-handle.html
Не забувайте проглядати код на охайність перед тим, як пушити зміни. style guide
[x] почитайте про рендерінг докладніше тут
[x] недоречне додання поля
status
в тіло json респонзу, статуси передаються в якості додаткового аргументу методуrender
дока[x] коментарі. їх ми додаємо у випадку, якщо код не є очевидним на перший погляд, або потребує додаткового пояснення причини його додання. У даному випадку - вони зайві. І якщо коментарі в коді - то лише англійською !!!