3

Я использую десятичный тип в Rails для хранения валюты.Недостатки определения проверки на BigDecimal

Однако, я устал постоянно видеть результаты как:

nominal_amount: #<BigDecimal:7f919884b648,'0.7E6',9(18)> 

При использовании консоли Rails.

Я могу исправить это, определив inspect как def inspect; to_s; end по адресу BigDecimal, но я обеспокоен тем, что это может привести к появлению специфических ошибок.

Любой, кто может поручиться за этот патч обезьяны или предупредить об этом?

ответ

2

Ruby Doc предлагает переопределить inspect для пользовательских классов. Он возвращает читаемую человеком строку. Никакой другой код не должен полагаться на функциональность inspect. Поэтому, если вы решите, что для вас более понятным для человека - если вы измените поведение по умолчанию, это нормально. Пока вы не включаете его в драгоценный камень или другой код, который будут использовать иностранные разработчики.

http://ruby-doc.org/core-2.1.1/Object.html#method-i-inspect

1

Хм, если вы поместите его в инициализаторе и запустить его в режиме разработчика только ... Я не вижу какого-либо риска. Вероятность того, что чужой код рассчитывает на BigDecimal.inspect, возвращает строку объекта. Я бы сказал, что это модификация только для разработки.

1

inspect «Возвращает отладка информация о значении как строке».

apidock.com/ruby/BigDecimal/inspect См

Я сомневаюсь, что переопределение отладки формат вывода может сломаться что угодно. Я обезьяна, исправляя его до to_s.

 Смежные вопросы

  • Нет связанных вопросов^_^