Комментарии 11
Если это RoR, то почему не через ActiveMerchant? Поддержка Qiwi вроде есть в стороннем репозитории (https://github.com/clevertechru/active_merchant), но можно было бы и самому реализовать при необходимости + вклад.
0
Мои глаза вытекли…
Вы не на PHP раньше писали, часом? Почитайте правила хорошего кода для Ruby/Rails проектов, ознакомьтесь с best practices и никогда, слышите, никогда не пишите код до тех пор, пока не поищите подходящий гем в сообществе.
Можете начать вот с этих рекомендаций: robots.thoughtbot.com/sandi-metz-rules-for-developers.
P.S. Prefer interpolation over concatenation, это реально быстрее работает.
P.P.S. Не используйте update_attribute – он не валидирует вставляемые значения. Используйте update_attributes.
P.P.P.S. Ну и да, рокет-хеши уже никто давным-давно не пишет (а, это копипаста, по всей видимости).
Вы не на PHP раньше писали, часом? Почитайте правила хорошего кода для Ruby/Rails проектов, ознакомьтесь с best practices и никогда, слышите, никогда не пишите код до тех пор, пока не поищите подходящий гем в сообществе.
Можете начать вот с этих рекомендаций: robots.thoughtbot.com/sandi-metz-rules-for-developers.
P.S. Prefer interpolation over concatenation, это реально быстрее работает.
P.P.S. Не используйте update_attribute – он не валидирует вставляемые значения. Используйте update_attributes.
P.P.P.S. Ну и да, рокет-хеши уже никто давным-давно не пишет (а, это копипаста, по всей видимости).
0
Вторая ссылка в гугле, есиче: github.com/romanbsd/qiwi
0
Нет. Не на PHP и не копипастил, но за рекомендации спасибо. Я ж не против учиться, да и заинтересован в том, чтобы быть лучше.
PS. Гем пробовал — не пошло дело. (Не уверен, что гем еще рабочий, последний commit 2013 года)
PS. Гем пробовал — не пошло дело. (Не уверен, что гем еще рабочий, последний commit 2013 года)
0
Все смешалось: люди, кони…
По хорошему вам нужен code review, чтобыразбить все на отдельные сервис классы хотя бы:
— RestClient вынести в отдельный класс, посмотреть может быть хорошо бы подошел Her.
— STATUSES в модели это или state machine или хотя бы enum
— create_bill станет намного короче, если все эти валидации, создание платежей раскидаются по логическим классам, а не такая портянка
— константы лучше в ENV закинуть
— Код в духе
можо в одну строку написать
По хорошему вам нужен code review, чтобыразбить все на отдельные сервис классы хотя бы:
— RestClient вынести в отдельный класс, посмотреть может быть хорошо бы подошел Her.
— STATUSES в модели это или state machine или хотя бы enum
— create_bill станет намного короче, если все эти валидации, создание платежей раскидаются по логическим классам, а не такая портянка
— константы лучше в ENV закинуть
— Код в духе
flash[:error] = 'Невалидные данные'
redirect_to action: :pay
return
можо в одну строку написать
return redirect_to action: :pay, error: t('.invalid_data')
+1
Спасибо огромное за рекомендации :) Мне этого не хватало
0
константы лучше в ENV закинуть
Посмотрите например на dotenv.
Еще вот такой вариант есть, взятый из OSM.
0
Coding Style Ruby — нашел! Делюсь, может кому будет интересно. Есть русская версия.
GitHub Coding Style RU
GitHub Coding Style RU
0
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Ruby On Rails и взаимодействие с REST Qiwi Shop