Size: a a a

pro.rb (Ruby/Rails / RU)

2020 October 22

ЭК

Эрмек Каныбек уулу... in pro.rb (Ruby/Rails / RU)
Всем спасибо. Попробую, отпишу если не забуду
источник

SR

Subhamoy Rana in pro.rb (Ruby/Rails / RU)
or do you
источник

Т

Тенпеннай in pro.rb (Ruby/Rails / RU)
кажись это бот
источник

ch

central hardware in pro.rb (Ruby/Rails / RU)
Тенпеннай
кажись это бот
уже последний месяц как   почти во всех чатах такими сообщениями спамять
источник

D

Dmitry in pro.rb (Ruby/Rails / RU)
Эрмек Каныбек уулу
  def accept
   order = Order.find(params[:order][:order_id])
   if order.nil?
     return render json: {success: false, data: "Ошибка: заказ не найден!"}
   end

   if order && order.status == OPEN
     unless @current_driver.balance_sufficient?(subtract_amount: order.tariff&.commission)
       return render json: {success: false, data: t("models.driver.errors.balance.insufficient", balance: @current_driver.balance, currency: CURRENCY)}, status: 200
     end

     if @current_driver.status == FREE
       if order.update_attributes(status: ACCEPTED, driver_id: @current_driver.id) && @current_driver.update_columns(status: ACCEPTED)
         order.save!
         render json: {success: true, tariff: Tariff.find(order.tariff_id)}, status: 200
       else
         order.save!
         render json: {success: false, data: 'Произошла ошибка'}, status: 200
       end
     else
       order.save!
       render json: {success: false, data: "Ваш статус должен быть свободен!"}, status: 200
     end
   else
     order.save!
     title = order.status == CANCELLED ? 'Заказ был отменен!' : 'Заказ уже занят!'
     render json: {success: false, data: title, order_status: order.status}, status: 200
   end
 end
как минимум, у вас присвоение водителя заказа и обновление статуса водителя - должно быть в одной транзакции. Полагаю в этом проблема. уберите эти лишнее order.save!
+ такую лапшу в контроллерах уже давно так не пишут )) Выносите логику в отдельный сервис обджект
источник

IN

Ivan Naumov in pro.rb (Ruby/Rails / RU)
Dmitry
как минимум, у вас присвоение водителя заказа и обновление статуса водителя - должно быть в одной транзакции. Полагаю в этом проблема. уберите эти лишнее order.save!
+ такую лапшу в контроллерах уже давно так не пишут )) Выносите логику в отдельный сервис обджект
+ рекомендую interactor
источник

IN

Ivan Naumov in pro.rb (Ruby/Rails / RU)
тут прям он лучше всего подходит
источник

D

Dmitry in pro.rb (Ruby/Rails / RU)
в принципе любая реализация, хоть самописное что-то, хоть драем с монадами обмазываться. главное чтобы вынести логику из контроллера
источник

D

Dmitry in pro.rb (Ruby/Rails / RU)
ну и тестами покрывать сервис обджекты само собой
источник

IN

Ivan Naumov in pro.rb (Ruby/Rails / RU)
Dmitry
в принципе любая реализация, хоть самописное что-то, хоть драем с монадами обмазываться. главное чтобы вынести логику из контроллера
если идти по 'rails way' - то нет, но DHH ещё тот чудила)
источник

IN

Ivan Naumov in pro.rb (Ruby/Rails / RU)
как-то читал статью, где он говорил что концерны - каеф, остальное бяка
источник

D

Dmitry in pro.rb (Ruby/Rails / RU)
честно говоря не видел ни одного более-менее крупного приложения с поддерживаемым кодом, если идут классическим rails way. очень быстро превращается в  адовое легаси.
источник

D

Dmitry in pro.rb (Ruby/Rails / RU)
да вообще по моему уже так не пишут. только если старые проекты какие-то
источник

VK

Vasyl Kuzmyk in pro.rb (Ruby/Rails / RU)
Dmitry
честно говоря не видел ни одного более-менее крупного приложения с поддерживаемым кодом, если идут классическим rails way. очень быстро превращается в  адовое легаси.
Basecamp говорят терпимый, но это скорее исключение подтверждающее правило
источник

D

Dmitry in pro.rb (Ruby/Rails / RU)
возможно. но это basecamp
источник

IN

Ivan Naumov in pro.rb (Ruby/Rails / RU)
Dmitry
честно говоря не видел ни одного более-менее крупного приложения с поддерживаемым кодом, если идут классическим rails way. очень быстро превращается в  адовое легаси.
у dev.to вроде как такой подход, но сейчас не знаю, видел код на первом этапе разработки
источник

D

Dmitry in pro.rb (Ruby/Rails / RU)
смотрел их код года 2. такой себе )
источник

IN

Ivan Naumov in pro.rb (Ruby/Rails / RU)
во, посмотрел, ну как сказать - у них до сих пор жирные контролеры, но в сервисы что-то вынесли
источник

IN

Ivan Naumov in pro.rb (Ruby/Rails / RU)
Базовый контроллер на 180 строк - такое себе)
источник

КК

Кракозябр Кракозябро... in pro.rb (Ruby/Rails / RU)
Приветствую. Имеет ли кто опыт оффлайн установки rvm+ruby?
источник