@proRuby

Страница 1127 из 1594
Mikhail
20.03.2018
16:50:47
но если начну редактировать, то копия создается

если ссылок нет

Dima
20.03.2018
16:56:09
Типо ссылка на подстроку в строке?
не доводилось встерчать.

Google
Mikhail
20.03.2018
16:58:07
А как у строки реализован downcase например? Создается новый экземпляр в котором все объекты приведены к нижнему регистру, или меняется исходная выделенная память?

Alex
20.03.2018
16:59:21
a = "WTF" b = a.downcase p a,b

Mikhail
20.03.2018
17:00:05
Это понятно

а если a.downcase!

Alex
20.03.2018
17:00:16
Это понятно
тогда непонятен вопрос

Mikhail
20.03.2018
17:00:24
Объект тот же остается

Dima
20.03.2018
17:00:29
Это понятно
https://goo.gl/UBDGVR

Alex
20.03.2018
17:00:30
а если a.downcase!
a = "WTF" b = a.downcase! p a,b

Dima
20.03.2018
17:00:55
Объект тот же остается
можно всегда провеить при помощи object_id

Mikhail
20.03.2018
17:01:11
Так я знаю, что тот же будет

Вот у меня есть строка, я хочу все символы привести к нижнему регистру двумя спосабами

Либо иду и каждый символ привожу к нижнему регистру

либо создаю новую строку, в которой все буквы в нижнем регистре, а затем перезаписываю этой строкой исходную

Google
Mikhail
20.03.2018
17:02:29
Просто если возможен первый вариант, посимвольное измение, значит есть ссылки на подстроки

Dima
20.03.2018
17:02:39
a = "WTF" b = a.downcase! p a,b
p a,b # That's great!

Alex
20.03.2018
17:02:54
p a,b # That's great!
по аналогии с php сделал

Dima
20.03.2018
17:03:58
Вот у меня есть строка, я хочу все символы привести к нижнему регистру двумя спосабами
основная сила руби это скорость написания на нем, зачем идти и каждый символ приводить к нижнему регисрту если есть downcase?

Владимир
20.03.2018
17:04:36
он работает!

и это здорово)

Alex
20.03.2018
17:06:12
Я пытаюсь понять как он работает :)
залезай в C код mri и смотри )

Dima
20.03.2018
17:07:29
Я пытаюсь понять как он работает :)
Если есть желания разбираться в глубинах языка руби, то могу посоветовать вот это видео: https://youtu.be/268UU4EpTew А из этого видео, девушка лектор говорит о следующих ресурсах: https://github.com/tjjjwxzq/ruby-object-model-talk/blob/master/ruby-object-model-notes.md https://ruby-hacking-guide.github.io/ http://patshaughnessy.net/ruby-under-a-microscope

Владимир
20.03.2018
17:07:35
народ, я знаю что мои вкусы специфичны но кто то работал с bisiness dropbox api?

а именно DRM прямым запросом

ех, пошел дальше сам ковырять, скучные вы

Mikhail
20.03.2018
17:34:13
А как запустить вариант из best practice? Хочется по быстродействию сравнить :)

Zamira
20.03.2018
18:15:14
Коллеги, кто использует Postgres с рельсами? Нужна помощь

Dmitry
20.03.2018
18:19:24
Коллеги, кто использует Postgres с рельсами? Нужна помощь
Эта связка как пхп с майскл, почти все используют

Zamira
20.03.2018
18:19:55
Есть число #<BigDecimal:55e370cb3e60,'0.31469964E4',18(27)>. Его сохраняю в postgres в поле big decimal precision=10 scale=2. Если взять 2 цифры после запятой, то имеет 3146.99. Такие штуки в такие поля записываются как 3147. Я понимаю, что в теории вещественных чисел 0.(9) это 1, но можно ли его заставить все же сохранять 3146.99?

David
20.03.2018
18:23:34
Можно было бы хранить в базе 314699, как это делает например money gem

А затем перед использованием возвращать в нужные 3146.99

Zamira
20.03.2018
18:24:15
Воу... неожиданно.

Google
David
20.03.2018
18:24:49
Это как вариант, если всегда речь идёт о двух знаках после точки

Zamira
20.03.2018
18:24:58
Да, всегда 2

David
20.03.2018
18:26:05
Если ребята не подскажут что-то получше, то такой вариант вполне приемлем. А вам для значения денег?

Zamira
20.03.2018
18:27:29
Да. Есть отчет, в котором местами нужно значение без копеек, а местами с копейками. Так вот.. Там где отбрасывают копейки, у меня проблема, потому что мой отчет всегда на несколько рублей больше показывает из-за того, что 0.99 превращается в 1

Спасибо за идею. Я бы не додумалась.

David
20.03.2018
18:28:57
???

Vasiliy
20.03.2018
18:31:47
так если там с деньгами работа может заюзать гем money, который выше упоминали?

Zamira
20.03.2018
18:40:50
В проекте работы с деньгами много, но гема этого нет. Мне только один отчет немного надо переписать. И то оптимизации ради что бы страница быстрее открывалась. нет времени на переписывание всего проекта на использование этого гема. Но я для себя почитаю. В будущем пригодится. Спасибо.

Владимир
20.03.2018
18:45:34
Советую только еше добавить проверку того что после запятой только два знака и только потом подводить к единому виду. А то потом в отчете будут отнюдь не в рублях промахи

Ето может сейчас оно отдает строго с двумя знаками, через пол года еше какая то оптимизация, уже все забыто, и вот такое вылазит не сразу и не повсемесно

Felix
20.03.2018
18:46:52
может просто округлять до двух знаков, если больше?

ну и скорее всего это значение копеек, туда слава богу дробные еще не завезли)

Владимир
20.03.2018
18:47:35
может просто округлять до двух знаков, если больше?
Да там замыкания хватит если нет добавить нулей если да то округлить

ну и скорее всего это значение копеек, туда слава богу дробные еще не завезли)
Я лично видел финотчеты где все расчеты в БД хранились с 5 знаков после запятой

Как мне обьяснили "так надо"

Felix
20.03.2018
18:49:00
а вообще да. если операции сложнее вычитания/сложения, возможно имеет смысл хранить

особенно если с результатами отчетов еще что-то планируется делать

Zamira
20.03.2018
18:57:13
Оно ложится в postgres big decimal precision 10 scale 2 как 3147.

Владимир
20.03.2018
18:58:00
Тогда тем более единый формат представления чисел и тд

Google
Zamira
20.03.2018
18:58:33
Тогда тем более единый формат представления чисел и тд
Не совсем понимаю что Вы предлагаете.

Владимир
20.03.2018
18:58:57
Слоник в инте принимает, вот и отдавать ему инт заданого формата

Первые 5 чисел это дробь, остальное целое

К примеру

Если уж E

23.12344 будет как 2312344

А 23 как 2300000

А потом просто точку где надо и TO_i

Zamira
20.03.2018
19:00:34
Ах да, еще забить нулями исходно-целые...

Владимир
20.03.2018
19:01:00
Владимир
20.03.2018
19:01:11
А то зашло 23 рубля а вышло ноль

Zamira
20.03.2018
19:01:45
Как видите я имею bigdecimal числа(деньги) в принципе. Я могу умножить на 100, отбросить дробь, и записывать. Ничего же не надо забивать нулями.

Владимир
20.03.2018
19:01:52
я думаю в случае такой траблы вам даже предоставят в каком из пригородных лесков вас прикопать

ето и есть один из способов "забития" нулями)

Владимир
20.03.2018
19:07:43
Такой милый ?
Просто реалист) Знаю что в БД цену на корм для котика не хранят. А милионные потери из за программной ошибки ваша почка не решит. Данный тип ошибок из вида коварных и несовпадение сумм на отладке и первых тестах может и не выявится. А потом... ...ну вобшем и так понятно)

Google
Zamira
20.03.2018
19:09:13
Так не то что при тестах... Это при разработке выявилось. Я же большая девочка, мозги хоть чууууть-чуть есть)

Поэтому и обратилась с вопросом как это решить.

Владимир
20.03.2018
19:10:15
ничего, значит на тестах вылезет что то еше)

David
20.03.2018
19:10:29
Владимир
20.03.2018
19:11:42
У самого было когда при формировании pdf калькуляции подтягивались ушербные шрифты и сохранялось. Там всей командой с ума сходили как так, в консоли и на отладке одно а в отчете другое

Так... Стоп! А что делать если не хранить? Вы о чем? о_О
Поздно. Сессия данного диалога в моей голове уже была закрыта. Не помню))

ага. клиповая память. моргнул и забыл. удобно.

хотя при работе приходится по 12 часов не моргать...

Artem
20.03.2018
19:31:03
Rails 5.2.0 RC2: Active Storage, Redis Cache Store, HTTP/2 Early Hints, CSP, Credentials and Webpacker 3.0 http://weblog.rubyonrails.org/2018/3/20/Rails-5-2-RC2/

Vadim
20.03.2018
19:35:14
Есть некая переменная в конструкторе some, мне нужно её привести к random значению из массива [5, 7, 9 32]

Alex
20.03.2018
19:36:04
[5, 7, 9 32].sample

Felix
20.03.2018
19:36:31
занес в копилочку

не знал о таком методе)

Vadim
20.03.2018
19:36:41
и всё это присвоить моей переменной верно?

Владимир
20.03.2018
19:37:11
да

Vadim
20.03.2018
19:40:12
@Fedcomp а получается вот у меня есть констурктор в классе initialize а само это присвоение я могу писать в руби просто ниже типо так? или нужно всё таки создавать метод какой то который будет присваивать переменной значение? class Test def initialize(some) @some = some end some = [6, 12, 24, 36].sample end

Alex
20.03.2018
19:41:05
class Test RANDOM_ARRAY = [6, 12, 24, 36].freeze def initialize(some = RANDOM_ARRAY.sample) @some = some end end

Наверное так будет работать

Страница 1127 из 1594