@proRuby

Страница 524 из 1594
Sasha
21.04.2017
20:05:33
Как правильно время сохранять в PG ( вызываю колбек after_save) @time_sec = self.created_at.strftime("%H:%M:%S") self.update_column(:departure_time, @time_sec.to_s ) сохраняет просто 2017 вместо полного времени

Marsel
21.04.2017
20:07:17
to_s(:db)

а если там тип date_time, то просто self.update_column(:departure_time, self.created_at ) думаю

Sasha
21.04.2017
20:10:56
#<ArgumentError: wrong number of arguments (given 1, expected 0)>

Google
Alexander
21.04.2017
20:10:58
to_s лучше не делать

стоп

и @time_sec - у тебя и так строка )

и self писать не стоит

update_column(:departure_time, created_at)

Достаточно

ojab
21.04.2017
20:11:48
+self можно везде убрать + не стоит делать after_save (ибо вместо одного update'a получается два + не стоит юзать update_column, дабы не пропускать валидации

Alexander
21.04.2017
20:12:23
угу, лучше это поле сразу в before_create ставить в правильное значение и не париться

ojab
21.04.2017
20:12:37
*before_save

Sasha
21.04.2017
20:13:19
мне после сохранения обьекта, нужно обновить его статус через заданное время.

Alexander
21.04.2017
20:13:30
юзай sidekiq тогда

ojab
21.04.2017
20:13:36
*activejob

Alexander
21.04.2017
20:13:36
через service object

Google
ojab
21.04.2017
20:13:48
и зачем здесь service object?

Alexander
21.04.2017
20:14:10
потому что там по-любому есть еще куча какой-нибудь логики

и лучше сразу выделить её в service_object

Sasha
21.04.2017
20:14:17
мне просто нужно время сохранить в правильном формате) а не использовать еще новые гемы

Lupsick
21.04.2017
20:14:19
Я бы кроном менял

Alexander
21.04.2017
20:14:28
который заодно будет ставить таску в очередь

Sasha так сделай поле в виде datetime в базе

Lupsick
21.04.2017
20:14:50
Если это важно

Alexander
21.04.2017
20:14:52
и не надо будет мучаться с форматами

Lupsick а почему не через activejob?

Sasha
21.04.2017
20:30:31
Работает с простым форматом) спс

Lupsick
21.04.2017
20:30:37
Если большие промежутки например

Sasha
21.04.2017
20:31:12
еще такой вопрос, Можно ли после after_save создать еще один обьект. у которого будут немного другие данные?

Alexander
21.04.2017
20:32:09
Если большие промежутки например
Если норм настроить - то наоборот еще даст бонусы в виде попытки сохранить если какой-нибудь эксепшен вылезет ) Ну а вообще да, надо по ситуации смотреть

Sasha
21.04.2017
20:38:22
Хорошо, а как в методе написавть, Что я хочу склонировать имеено это обьект. и один раз его записать в базу с новым статусом

така задача, Нужно создать обьет и через 1 минуту обновить его статус, и записать новую версию в базу

Alexander
21.04.2017
20:57:02
new_object = dup new_object.update(attr: value)

вроде как-то так

Google
ojab
21.04.2017
21:17:47
прозреваю что для начала стоит определиться как определяется "именно это объект" и чем он отличается от остальных

Klim
21.04.2017
21:53:39
Alex
22.04.2017
03:58:09
как уже выше сказали воркеру задачу поставить

Andrey
22.04.2017
10:30:35
Есть ли что то кроме https://github.com/seamusabshere/fuzzy_match, что можете посоветовать для поиска "похожих" строк, с какой-нибудь толерантностью? Что то наподобе хочется: ['Somefilename_S10_2017', 'File2017', 'Armada'].smartfind('some file name') # => 'Somefilename_S10_2017'

нужно искать в месиве файлов периодически, расширяя коллекцию матчинга какими-нибудь алиасами

Sasha
22.04.2017
10:32:54
Задача. Каждому елементу массива добавить на 10 больше. a = [1,2,5,6] # => 11, 22, 35, 46 a.map{ |x| x=x+10 } # => 11, 12, 15, 16

думал просто на индекс умножить

a.map{ |x| p x=x+10*a[x].to_i }

Alex
22.04.2017
10:47:47
.map.with_index

Sasha
22.04.2017
11:18:02
так не очень a.map.with_index{|x| x=x+10*a[x].to_i} => [21, 52, 5, 6]

Alex
22.04.2017
11:19:07
x = x + => x +=

Alex
22.04.2017
11:20:49
[10,10,10,10].map.with_index { |v, i| v * (i+1) }

Sergey
22.04.2017
11:22:56
Слишком просто!

[1,2,3].map(&10.method(:+))

Sasha
22.04.2017
11:23:08
не совсем то

Alex
22.04.2017
11:23:13
[1,2,3].map(&10.method(:+))
а че так можно было?

не совсем то
насколько несовсем??

Sasha
22.04.2017
11:23:35
[1,2,3].map(&10.method(:+)) => [11, 12, 13]

Alex
22.04.2017
11:23:39
а, блжад

Google
Alex
22.04.2017
11:23:41
добавить

Sasha
22.04.2017
11:24:14
а нужно 11 22 33

кого доавить?

Sergey
22.04.2017
11:24:38
>Каждому елементу массива добавить на 10 больше

Alex
22.04.2017
11:24:41
[10,10,10,10].map.with_index { |v, i| v + (10 * i) }

Admin
ERROR: S client not available

Sergey
22.04.2017
11:24:45
Почему не то?

Alex
22.04.2017
11:25:03
[1,2,3].map.with_index { |v, i| v + (10 * i) } => [1, 12, 23]

а, йопта

Sasha
22.04.2017
11:25:09
не - на 10, а на 10 больше предыдущего

kolas
22.04.2017
11:25:16
че такие сложные задачки решаете? ?

Sergey
22.04.2017
11:25:19
А блин

Alex
22.04.2017
11:25:23
2.3.1 :007 > [1,2,3].map.with_index { |v, i| v + (10 * (i+1)) } => [11, 22, 33]

Sasha
22.04.2017
11:25:24
10 20 30 40

Alex
22.04.2017
11:25:35
че такие сложные задачки решаете? ?
У него либо собес либо онлайн задачку решает

Sasha
22.04.2017
11:25:57
нет) у меня ничего нету в субботу утром) вы что

Alex
22.04.2017
11:26:41
Sasha
22.04.2017
11:26:52
да, решает, не додумался так. Спс!

Alex
22.04.2017
11:27:01
чо там думать, это решение в лоб

Google
Alex
22.04.2017
11:28:49
ему нечеткий поиск же нужен

Andrey
22.04.2017
11:28:52
так .match же есть. в 2.4 точно.
Да и регулярки есть, думал может какой алгоритм готовый коробочный найти

Klim
22.04.2017
11:35:31
из примера не сильно понятно - насколько "нечеткий". а с примером мэтч вполне справится. алгоритм есть. тот самый левенштайн, который по ссылке юзается.

Andrey
22.04.2017
11:40:11
из примера не сильно понятно - насколько "нечеткий". а с примером мэтч вполне справится. алгоритм есть. тот самый левенштайн, который по ссылке юзается.
match просто строку в регексп делает, по этому мой пример не сработает, не заматчится "foobar" на "foo bar" без манипуляций дополнительных

Нечеткий вплоть до "f00bar" == "foobar" в идеале, с известным значением попадания

Klim
22.04.2017
11:42:56
фигасе это ты, барин, задачи ставишь :)

kolas
22.04.2017
11:44:53
а чо сфинкс так не умеет?

хотя так даже гугл не умеет кажись

Andrey
22.04.2017
11:46:20
Умеет гугл, это что то типа closest match алгоритма

Но я так себе сварщик

Alexander
22.04.2017
11:47:45
550 человек, офигеть ?

Klim
22.04.2017
11:48:47
у гугла тут уже поведенческие алгоритмы работают. на огромной выборке переходов. простым расстоянием между словами это уже не решить.

Andrey
22.04.2017
11:50:04
Похоже придется делать два этапа сравнения, на последовательное наличие нужных символов, с известными альтернативами Добавлять очко за каждое попадание в нужный символ а потом возвращать набранное количество очков ;) но чувствую что кто то это наверняка уже делал

Klim
22.04.2017
11:52:44
посмотри в книжке "Путь Руби": "Расстояние Левенштейна" , может найдешь чего в тему.

Andrey
22.04.2017
11:56:21
Klim
22.04.2017
11:56:46
точно есть.

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