Size: a a a

2019 March 06

AP

Alex Poznyak in Random Ruby Chat
да... потихоньку въезжаю уже)
источник

RV

Roman V in Random Ruby Chat
Nikolay Turnaviotov
ну, декомпозия сложных запросов на кусочки это раз. второе - я бы за такую простыню по ручкам давал. ибо сложночитаемо
нормальный запрос вполне
источник

RV

Roman V in Random Ruby Chat
две таблицы и два действия, что ты не можешь прочитать?
источник

RV

Roman V in Random Ruby Chat
Alex Poznyak
def bulk_destroy
   current_company.trucks.where(id: params[:ids]).left_joins(:crews).where(crews: { truck_id: nil }).destroy_all
   trucks_with_crew = current_company.trucks.where(id: params[:ids])
   return head :no_content if trucks_with_crew.empty?
   render json: { message: "Trucks: '#{trucks_with_crew.pluck(:name).join(', ')}' can't be deleted because used by crews." }, status: :unprocessable_entity
 end
Вот такое работает :)
а вот это, если bulk_destroy - экшн контроллера, билет в крематорий
источник

AP

Alex Poznyak in Random Ruby Chat
Почему? Потому что не бекграунд воркер ?
источник

RV

Roman V in Random Ruby Chat
а ну он и есть, не дочитал до рендера
источник

RV

Roman V in Random Ruby Chat
нууу
источник

RV

Roman V in Random Ruby Chat
это уже сорт оф размахивание руками, но операции с AR внутри контроллера - хуевая практика, контроллер это просто триггер определенного поведения внутри приложения, веревочка за которую запрос дергает
источник

RV

Roman V in Random Ruby Chat
в идеальном случае все что там есть - вызов какого-то функционала в приложении и решение о том какой ответ отправить
источник

AP

Alex Poznyak in Random Ruby Chat
Я понял, ты имеешь ввиду об сервисе с бекграунд воркером. а на контроллере просто .call вызывать сервиса. Это я знаю, и почему так и какие могут быть последствия тоже знаю)
источник

NT

Nikolay Turnaviotov in Random Ruby Chat
Alex Poznyak
Я понял, ты имеешь ввиду об сервисе с бекграунд воркером. а на контроллере просто .call вызывать сервиса. Это я знаю, и почему так и какие могут быть последствия тоже знаю)
контроллер - передаван модели чо ты с ней хош сделать.
источник

RV

Roman V in Random Ruby Chat
ну бекграунд воркер это опционально
источник

NT

Nikolay Turnaviotov in Random Ruby Chat
а вот это вся простыня проверок - в код модели
источник

AP

Alex Poznyak in Random Ruby Chat
Вы опять загоняете не в ту степь
источник

RV

Roman V in Random Ruby Chat
> в код модели
в соседнюю печку быстро, решительно
источник

NT

Nikolay Turnaviotov in Random Ruby Chat
Roman V
> в код модели
в соседнюю печку быстро, решительно
меня всегда учили что контроллер должен быть максимально облегчен. все эти проверки - в код модели
источник

RP

Roman Patkin in Random Ruby Chat
за речью следи
источник

A

Aldar in Random Ruby Chat
лучше вообще без кода
источник

A

Aldar in Random Ruby Chat
нет кода - нет проблем)
источник

RV

Roman V in Random Ruby Chat
Aldar
лучше вообще без кода
этот все понял
источник