
Dmitry
17.09.2016
17:28:21
тогда разве не выйдет аналог distinct?
если группировать по conversation_id

Antony
17.09.2016
17:39:40
не совсем
в plain sql что-то вроде `select conversation_id from conversation_users where user_id in (<users>) group by conversation_id having count(distinct user_id) = <users.size>`

Google

Dmitry
17.09.2016
17:57:32
но ведь пользователь может быть в беседе с другими людьми на то же число
подобное я решил через кучу джоинов на юзера:
SELECT * FROM conversation_members as c1
join conversation_members as c2
on c1.conversation_id = c2.conversation_id AND c2.user_id = 2
join conversation_members as c3
on c2.conversation_id = c3.conversation_id AND c3.user_id = 3
WHERE c1.user_id = 1
GROUP BY(c1.conversation_id)
но это уже страшно видимо)

Anatoly
17.09.2016
20:20:18
Ребят, а вот с вьюхой есть js'ка, но js-ка начинает отрабатывать раньше, чем отрендерится вьюха. Ну вот почему так то? (

v
17.09.2016
20:23:05
потому что надо использовать document.ready?

Anatoly
17.09.2016
20:26:21
Ох уж этот Rails way

abc
17.09.2016
20:40:47
это к rails way не имеет отношения от слова вообще

Lupsick
17.09.2016
20:50:24

Anatoly
17.09.2016
20:59:04
Проблема то в том, что эти js-ки от вьюх грузятся с самого начала и даже когда данная вьюха неотрендерена
это разве не проблема?

Lupsick
17.09.2016
20:59:31

Anatoly
17.09.2016
21:00:13
причем тут низ бади то?

Lupsick
17.09.2016
21:00:38
Если он первый загрузился то первый и заработает

Google

Anatoly
17.09.2016
21:01:03
компонент не отрендерен если, хоть куда засунть
в жске обращаюсь к элементам, которые рендерит компонент
как вообще это по правильному решается?

Lupsick
17.09.2016
21:05:58
В жс есть какие то методы на этот случай
Еще можно сделать сеттаймаут

Anatoly
17.09.2016
21:08:04
В приличном обществе за setTimeout 0 бьют ногами по лицу, о чем вообще речь.

Lupsick
17.09.2016
21:08:29

Anatoly
17.09.2016
21:08:45
Какой у меня код? )
Есть способ добавлять отдельно конкретный жс к конкретной вьюхе
Но это неудобно

Lupsick
17.09.2016
21:09:24

Anatoly
17.09.2016
21:09:43
Так в том то и вопрос, как это избежать?

Lupsick
17.09.2016
21:10:28
Что конкретно не работает и как оно не работает

Anatoly
17.09.2016
21:13:19
Вот есть вьюхи А, B, C. Из вьюхи А можно перейти в B, оттуда в C. Есть A.js, B.js, С.js соответственно. Так вот как сделать так, чтобы A.js, B.js, C.js грузились только тогда, когда выполнен переход на нужную вьюху.

Lupsick
17.09.2016
21:13:47

Anatoly
17.09.2016
21:14:37
За тем, что во вьюхе С есть форма, хэлпера которой не хватает, чтобы ее кастомизировать.

Lupsick
17.09.2016
21:15:03

ojab
17.09.2016
21:15:30

Google

Anatoly
17.09.2016
21:15:35
А еще способы на уровне фрейморка есть?
ojab Перечитайте, о чем я написал выше.

ojab
17.09.2016
21:17:02

Anatoly
17.09.2016
21:17:40
ojab А теперь уже пониже )

ojab
17.09.2016
21:18:02
и что там читать?
ставишь javascript_include_tag после формы, js будет грузиться после формы
не?

Anatoly
17.09.2016
21:18:23
Неужели нет на уровне фрейморка каких-то решений?
Так у меня подключаются все скрипты сразу
И теперь мне нужно подключить все остальные отдельно, а этот скрипт добавить к конкретной вьюхи

ojab
17.09.2016
21:18:55
>Так у меня подключаются все скрипты сразу
>Так вот как сделать так, чтобы A.js, B.js, C.js грузились только тогда, когда выполнен переход на нужную вьюху.

Lupsick
17.09.2016
21:19:09

ojab
17.09.2016
21:19:13
не подключать всё сразу и грузить когда надо, очевидно

Anatoly
17.09.2016
21:19:46
Очевидно, не удобно

v
17.09.2016
21:20:09
тогда проверяй, в наличии ли компонент

Lupsick
17.09.2016
21:20:27
Жс не работает на уровне фреймворка, жс работает на уровне браузера

Anatoly
17.09.2016
21:20:31
А так вообще делают люди то нормальные? )

Lupsick
17.09.2016
21:20:35
И ему похую на твои рельсы

ojab
17.09.2016
21:20:40
Очевидно, не удобно
при подключении сразу всего подряд невозможно добится того, чтобы A.js, B.js, C.js грузились только тогда, когда выполнен переход на нужную вьюху, не?

Anatoly
17.09.2016
21:20:46
*На уровне прекомиляторов ассетов

Google

Anatoly
17.09.2016
21:21:08
ojab Логично

Lupsick
17.09.2016
21:21:14
Lazy load может есть какой то

v
17.09.2016
21:21:17
на уровне прекомпиляторов ассетов все компиляют в один файл

Anatoly
17.09.2016
21:21:27
Понял, спасибо

v
17.09.2016
21:21:47
и если там есть какой-то зависимый от элементов код - проверяют наличие этих элементов

Lupsick
17.09.2016
21:21:52

v
17.09.2016
21:22:07
это не уровень прекомпилятора

Anatoly
17.09.2016
21:22:19
Ну сделаю добавление скрипта на страницу, а где все подключается заюзаю stub
Ну данного скрипта

Lupsick
17.09.2016
21:22:30
Чисто теоретически это можно сделать на уровне прекомпилятора

Admin
ERROR: S client not available

v
17.09.2016
21:22:32
0_о
извращения какие-то пошли

Roma
17.09.2016
21:22:51

Lupsick
17.09.2016
21:22:59
Конечно извращения
Можем себе позволить
Хочу сюда жс сую хочу туда
Пхп мешаю с хтмл

Anatoly
17.09.2016
21:24:43
@manaka а как? if (есть ли на странице элемент из данной вьюхи) ...

Roma
17.09.2016
21:26:11

Google

Anatoly
17.09.2016
21:27:48
Да нет, это еще хуже, чем добавить к конкретной вьюхе. Оверхед каждый раз проверять наличие элемента там, где он быть не должен.

Lupsick
17.09.2016
21:29:04
Не такое уж это и большое зло

v
17.09.2016
21:30:35
давай еще такты считать в простейшем js-скрипте

Alex
17.09.2016
22:10:52
А как же asm.js

Vitaliy
18.09.2016
03:35:15
Загрузка уникальных скриптов под страницы - это вообще не то, о чем вам нужно беспокоиться. Грузите один общий application.js, вмещающий в себя все скрипты, и работающий на всех страницах со всеми компонентами
В скриптах привязывайтесь не к вьюхе, которая сейчас рендерится (или нет), а к компонентам в DOM, которые могут появляться на любых ваших вьюхах
Используете турболинкс? Оборачивайте скрипты в такие ивенты:
$(document).on 'turbolinks:load ajax:success', ->
Не используете? Тогда в такие:
$(document).on 'ready', ->
Внутри ищите в DOM нужные скрипту компоненты, и продолжайте выполнение скрипта, только если такие компоненты были найдены, хотя бы один:
dates = $('.moment-date')
return unless dates.length
dates.each ->


Amir
18.09.2016
04:38:37
ActiveRecord::RecordInvalid: Validation failed: Parent must exist
выдает такую хрень, когда parent_id = nil
т.е. когда сущность хочу обновить
foo.update field: 123
как с валидации убрать не сообразил, в модели ничего такого нет
только описание children и parent

...
18.09.2016
05:18:09
Если совсем не нужны валидации, то можешь воспользоваться foo.update_attribute(:field, 123) - но! во многих кругах этот метод считается злом.
Ты случаем не используешь гем Closure Tree?
Добавь к belongs_to :parent, ..., optional: true

Amir
18.09.2016
05:31:20
ок спс, попробую, пока хардкорно на майскл пришлось поменять
хотя не понятно, дерево же рисовал тоже из рельцов, и там парента не указывал, а сейчас в консоли хочу поменять поле у корневой, и вот не дает сохранить
что за тупость, mysql грохнулся когда ему подсунули Emoji

Rafkat
18.09.2016
08:42:26
> Amir

Плюшка
18.09.2016
08:42:27
tl;dr; MySQL regular UTF8 encoding sucks, you should use UTF8mb4 (or even better, Postgres !)

Rafkat
18.09.2016
08:42:32
А это известная тема

Amir
18.09.2016
08:53:22
т.е. полностью настройки сервера надо перевести на mb4?>
потомучто поменял тип колонки, всеравно не вставляет выдает ошибку
а рельцам знать об этом надо? вроде нет кажеться