
No
24.01.2018
18:42:36
в rails консоли мне надо вызывать на объектах метод save!
как скипнуть коллбэки модели на этом save?
гугл чего-то устаревшие ответы пихает

Artur
24.01.2018
18:47:19

Google

No
24.01.2018
18:47:50
так валидация же скипается
не коллбэки

Artur
24.01.2018
18:47:58
ааа
бля
не так прочитал
вот я наркоман
кек

No
24.01.2018
18:48:07
короче немного бизнес логики
восстанавливаю удаленные данные
через гем paper_trail
только что обжогся, на проде 27 юзерам улетили письма

Artur
24.01.2018
18:49:40
Ух бля. Напрашивается паста про батю, эх

No
24.01.2018
18:50:48
Хз что за паста

Google

No
24.01.2018
18:50:51
Но удалил не я ))

Artur
24.01.2018
19:06:32
слушай, а тебе на многих объектах нужен сейв?
я пока не совсем понял как ты восстанавливаешь данные, там магия папертрейла какая-то?
http://thelazylog.com/skip-activerecord-callbacks/
вот вроде по делу пишут

No
24.01.2018
19:14:23
да уже делаю так
рисковано на проде даже временно вырубать коллбэки
но другого варианта у меня нет
да и по идее консоль это отдельный инстанс
так что по идее я не вырубаю коллбэки везде
а, ну да, так и есть

Andiskiy
24.01.2018
19:25:51
есть такого рода текст test1<div>test2</div> , как завернуть в div весь текст что перед ним находится, в данном случае test1 ?
с помощью регулярок

ojab
24.01.2018
19:28:34
Не стоит html парсить регулярками.

Andiskiy
24.01.2018
19:30:03
а чем это делать?

ojab
24.01.2018
19:30:42
Парсером html, nokogiri ка квариант.

Andiskiy
24.01.2018
19:30:44
как взять текст не завернутый в div ?

nikita
24.01.2018
19:31:37

ojab
24.01.2018
19:33:22
nokogiri его в <p> заворачивает, например

Andiskiy
24.01.2018
19:33:30
хорошо, нельзя. как на фронте это сделать тогда, перед отправкой на сервер?

Google

ojab
24.01.2018
19:36:00
почему нельзя?
.xpath('//body/p').text должно сработать
и эту ноду надо заменить на <div> с тем же текстом

Sergii
24.01.2018
19:43:53
ну там наверное не просто так текст
а завёрнут он с последующим дивом еще в какой-то контейнер
его и искать хпатх-ом

ojab
24.01.2018
19:44:55
в этом случае регекспы ещё менее применимы, да

Гидеон
24.01.2018
22:40:34
Лучший новостной-инсайдерский канал в Telegram!
? https://t.me/SharkCIA
Там Вы найдете:
? Ежедневный поток полезной информации.
? Аналитические статьи.
? Интересные факты.
? И многое другое!
? Целый путеводитель к успеху в вашем телефоне.
▪️Присоединяйся к каналу:
▪️https://t.me/SharkCIA

Roman
25.01.2018
10:38:46
Всем привет.
Как посмотреть, на что в данный момент ссылаеться root_path?

No
25.01.2018
10:39:20
rake routes
?

Roman
25.01.2018
10:42:50
Нет, не то.
У меня прописано в роутах, что по умолчанию root to A.
Когда юзер авторизован - root to B.
Мне нужно посмотреть, на что ссылаеться root в данный момент. Мб хелпер есть такой.

No
25.01.2018
10:43:24
root_path
root_url
давно с вьюхами не работал, не помню уже имена хелперов
но вроде должно быть так )

Roman
25.01.2018
10:49:12
Нашел вот такое решение: current_page?(controller: 'A')
Спс)

Mikhail
25.01.2018
13:39:36
Всем привет! Вопрос по архитектуре рэилс приложений. У меня есть задача, нужно обнволять рейтинги постов. Чтобы обновить рейтинг поста, мне нужно сначала узнать его предыдущий рейтинг, а затем выставить новый - это два запроса к БД. С другой стороны, я мог бы обойтись одним запросом написав хранимую процедуру. Но я читал, что это плохая практика их использовать. Так у меня вопрос, как тогда лучше сделать, ведь операция обновления рейтинга будет частой?

Eugene
25.01.2018
13:49:55
ну рейтинг у тебя обновляет какая-то оценка(отдельная сущность).
ты в базу пишешь запись с оценкой, и, вероятно, хочешь закэшировать текущий рейтинг в таблице постов.
Тут одним запросом никак же.

Mikhail
25.01.2018
13:51:28
Rate.where(id: rate_id)
.update_all(
["summary = summary + ?, count = count + 1, rate = (summary + ?) / (count + 1)", new_rate]
)

Google

Eugene
25.01.2018
13:51:30
как я понимаю, если еще не кэшировать кол-во оценок, то 3 запроса делать придется)

Mikhail
25.01.2018
13:51:32
Вот так можно :)

Eugene
25.01.2018
13:52:34
дичь какая-то
ты же говорил, что у постов рейтинг
а это сущность оценок, зачем все записи в ней обновлять?

ojab
25.01.2018
13:53:25
прозреваю это такой counter_cache
который во всех оценках хранится
так что попробуй посмотреть http://guides.rubyonrails.org/association_basics.html -> counter_cache, вероятно тебе это подойдёт

Eugene
25.01.2018
13:55:27
В кком случае 1 оценка может повлечь измменения многих записей?

ojab
25.01.2018
13:55:42
ааа, это рейт считается же
summary = сумма всех оценок, count — количество

Eugene
25.01.2018
13:56:04
и в коде нет расчета тог осамого new_rate

ojab
25.01.2018
13:56:15
rate = (summary + ?) / (count + 1)"

Mikhail
25.01.2018
13:56:20

ojab
25.01.2018
13:57:01
вопрос в том, нужна ли тебе такая оптимизация

Eugene
25.01.2018
13:57:16
и я так и не понял, откуда тут update_all

ojab
25.01.2018
13:57:24
потому что where, а не find

Eugene
25.01.2018
13:57:53
ну я к тому, что это не логично же

Mikhail
25.01.2018
13:58:34

Eugene
25.01.2018
13:58:48
а сами оценки ты не хранишь?

Google

Mikhail
25.01.2018
13:59:04

Eugene
25.01.2018
13:59:12
тогда понятно

Mikhail
25.01.2018
13:59:55
Хотя с оценками было бы интереснее конечно :)

ojab
25.01.2018
14:00:30
задачи показывать обновлённые оценки тоже нет? Тогда будет два запроса и эти извращения с ханением аггрегатов нафиг не нужны.

Mikhail
25.01.2018
14:00:58
Т.е. топ 10 нужно выводить и после апдейта оценки нужно выводить новый рейтинг

Валера
25.01.2018
15:03:33

Mikhail
25.01.2018
15:03:59
Это для hanami?

Валера
25.01.2018
15:05:14
я не смотрел гем, но думаю и для рельс тоже
надо у @davydovanton спросить?

Vasiliy
25.01.2018
15:10:36
универсальный

No
25.01.2018
15:12:38
пацаны, у кого-нибудь есть под рукой пример хорошего опен-сорса на микросервисах?

Mikhail
25.01.2018
15:13:22

No
25.01.2018
15:13:40
это предсказуемый ответ, сам так думаю
но вдруг кто удивит
есть мысль, что стоит разбить приложение на несколько
и хочется иметь пример перед глазами
чтобы увидеть, как чуваки решали те или иные проблемы
и что у них вышло
потому что статьи это хорошо, но "покажите мне код"

Mikhail
25.01.2018
15:14:45
Моё имхо конечно, ничем хорошим это не закончится :)