
Vitaly
05.10.2016
10:01:19
a = [{"a" => 1, "b" => 2, "c" => 3}, {"a" => 11, "b" => 22, "c" => 3}, {"a" => 111, "b" => 222, "c" => 333}]
d = {}
a.map do |a1|
a1.map do |key, a2|
d[key] ||= []
d[key] « a2
end
end
print d
{"a"=>[1, 11, 111], "b"=>[2, 22, 222], "c"=>[3, 3, 333]}
но, одна фигня - без d[key] ||= [] в перечислении(или в цикле типа each) не работает d[key] « a2, а без перечисления(или без цикла) работает

I
05.10.2016
10:06:01
(d[key] || = []) « a2 - еще так можно :)

Vitaly
05.10.2016
10:08:09
но почему без d[key] || = [] выдает ошибку типов или ошибку метода "«" ???
если пытаться выполнить d[key] « a2.
Ведь если выполнять d[key] « a2 вне блоков each то работает без ошибок

Google

I
05.10.2016
10:08:53
потому что вы пытаетесь в nil << a2

Vitaly
05.10.2016
10:09:09
но ведь d = {}
он не нил ведь?

I
05.10.2016
10:09:21
не nil

Vitaly
05.10.2016
10:09:27
за блоками я же его обьявляю

I
05.10.2016
10:09:32
но у nil нет метода <<
можете добавить :)

Vitaly
05.10.2016
10:10:04
но без блоков же оно работает

I
05.10.2016
10:10:24
что именно?)
сделайте скриншот что ли

Vitaly
05.10.2016
10:10:47
вот так вот работает:
h = {'a' => [1, 2]}
key = 'a'
value = 3
h[key] << value
puts h
а если этот код обернуть в блок типа map или each
то будет ошибка при попытке выполнить h[key] « value

Google

I
05.10.2016
10:12:01
а вы key = 'b'
сделайте
h = {'a' => [1, 2]}
key = 'b'
value = 3
h[key] << value
puts h
вот так
что, не работает?)

Vitaly
05.10.2016
10:12:54
нет
в блоке

I
05.10.2016
10:13:02
ну вот именно

Vitaly
05.10.2016
10:13:06
а без блока работает

I
05.10.2016
10:13:10
мой код?

Vitaly
05.10.2016
10:13:12
погоди
я кажется понял на что ты намекаешь

I
05.10.2016
10:13:39
я намекаю на то, что я сказал еще давно

trickster
05.10.2016
10:14:48
ребят а могу я редиректнуть с одного контроллера на другой если речь идёт о POST запросе ?

I
05.10.2016
10:15:03
на POST или с POST?

trickster
05.10.2016
10:15:14
на пост

I
05.10.2016
10:15:23
это плохо
Redirection isn't possible with POST requests - it's part of the HTTP/1.1 protocol.

trickster
05.10.2016
10:15:57
да это я прочитал на со

Google

I
05.10.2016
10:16:03
можно там из js'a костыльнуть

trickster
05.10.2016
10:16:03
просто задача подобного рода

I
05.10.2016
10:16:17
все та же?

trickster
05.10.2016
10:16:36
да)

Vitaly
05.10.2016
10:17:25
вот на это
понял я тебя - нету потому что еще d[key] и его нужно инициализировать. спасибо. и со мной можно на ты. =)

Anon
05.10.2016
11:52:04
Есть сервер на реальсах, есть клиент на реакте. Раз в 5 секунд клиент просит у сервера список сообщений, получает и перерендеривает окно с сообщениями. Сообщения за это время могут меняться. При большом онлайне (>800) серву тяжело и он валится с 502. Какие варианты сделать эту тему эффективней?

I
05.10.2016
11:53:04
изверги)
а если юзер тайпит что-то в этот момент - то у него окно с сообщениями обновляется?

Anon
05.10.2016
11:53:58
ну если в то время выполнился запрос то чому нет

kolas
05.10.2016
12:04:45
вебсокеты попробуй

Иван
05.10.2016
12:20:12
а вот такое решение нормальное?
arr = [{"a"=>1, "b"=>2, "c"=>3}, {"a"=>11, "b"=>2, "c"=>33}, {"a"=>111, "b"=>222, "c"=>333}]
arr.reduce { |a, e| e.merge(a) { |k, oldval, newval| [oldval, newval].flatten } }

I
05.10.2016
12:22:12
лучше уж так arr.reduce { |a, e| e.merge(a) { |k, oldval, newval| [newval, oldval].flatten } }

I
05.10.2016
12:22:29
ну или там поиграться, а то массивы перевернутые

Alexander
05.10.2016
12:25:05

Anon
05.10.2016
12:28:13
Они изменяются, потому надо все перегружать

v
05.10.2016
12:28:21

Anon
05.10.2016
12:28:26
с админки удаляются, помечаются и все такое

I
05.10.2016
12:35:39
ну тогда да, вебсокетами уведомлять об изменениях

v
05.10.2016
12:39:42
не обязательно вебсокеты

Alexander
05.10.2016
12:41:58
с админки удаляются, помечаются и все такое
раздроби на типы изменений. тип клиент спрашивает «чо нового с 15 часов 35 минут?», а сервер ему «ну вот сообщение 31 удалилось, а 35 изменилось на такое-то, и вот парочка новых»

Google

Alexander
05.10.2016
12:42:40
это сложно, но терпимо. расписал запросы по тайм-ауту. с сокетами или long-poll просто будет висеть подключение и сервер сразу будет поштучно оповещать в том же ключе
вот ещё временное решение проблемы: поднять сервер на чём-то полегче рельс, тип sinatra или grape, или вообще не руби, который будет именно за получение сообщений отвечать. можно будет вынести на отдельную машину
микросервисы, да. не всегда они хороши, но часто уместны в узких местах (с нагрузкой повышенной относительно других частей проекта)

I
05.10.2016
12:49:36
Да. Или на Go вынести вместо рельс/синатры
хотя это вообще уже мейнстримно слишком, да?

Alexander
05.10.2016
12:50:37

I
05.10.2016
12:51:01
а, ну просто мне прямо понравилось на go строить, вот я и советую

Alexander
05.10.2016
12:51:12
и вручную придётся параллелить, если необходимо. но он очень шустрый

Rafkat
05.10.2016
12:59:29

Admin
ERROR: S client not available

Rafkat
05.10.2016
13:00:59
вопрос кстати
ч сервака в html или json получает?

trickster
05.10.2016
13:06:02
по какйо причине
может не овверрайдиться базовый класс?
вот допустим я хочу расширить девайс
скопировал
module Devise
module OmniAuth
module UrlHelpers
и переопределяю метод
который мне нужен
по какой причине он может не переопределяться
если файл подгружается

Google

v
05.10.2016
13:10:36
а может он переопределяется, но не там?

trickster
05.10.2016
13:11:37
может девайс его переопределяет)
так как он в папке либ
сейчас попроьбую в хелперы
положить

Иван
05.10.2016
13:13:07
попробуй в config/initializers это закинуть

trickster
05.10.2016
13:13:47
ок, спасибо

Иван
05.10.2016
13:14:16
да я сам не уверен что это хороший совет, так что не благодари)

trickster
05.10.2016
13:15:18
ну я попробую если не выйдет)
я уже устал от девайса
просто слов нет

Roma
05.10.2016
15:06:28
Напиши лучше :)

trickster
05.10.2016
15:08:22
http://lurkmore.to/%D0%A1%D0%BF%D0%B5%D1%80%D0%B2%D0%B0_%D0%B4%D0%BE%D0%B1%D0%B5%D0%B9%D1%81%D1%8F

Lupsick
05.10.2016
15:17:22

Roma
05.10.2016
16:07:28

Dmitriy
05.10.2016
17:50:09
Друзья, подскажите как сделать вывод элементов массива в столбик?(
Понимаю что вопрос глупый, но что то не выходит(
Есть массив например [[1],[2],[3]]
Надо вывести его
1
2
3

Aldar
05.10.2016
17:51:46
это массив массивов

ojab
05.10.2016
17:51:47
puts [[1],[2],[3]]

Dmitriy
05.10.2016
17:52:31
Да, тоесть <%= puts array %> ?