@rubylang

Страница 793 из 1684
Tony
08.12.2016
06:17:37
Компилируемые огонь

Evgeny
08.12.2016
06:19:51
Так всегда были) Вопрос лишь в том, как долго ты будешь делать на руби и как долго на С -> ++ -> etc. Правда последние типа го уже догоняют по удобству

Evgeny
08.12.2016
06:21:48
Схож но не все) Но как я уже писал не так давно тут, 2 чела пилят, да еще за донат выбирают сколько часов в неделю будут делать, так долго не протянут поди. Я понимаю, что надо же на что то жить, но напор со стороны того же го просто зашкаливает, атут все то альфа. Надеюсь а ошибаюсь, т.к. кристал мне тоже больше нравится)

Google
Evgeny
08.12.2016
06:24:34
Про что и речь

Evgeny
08.12.2016
07:14:13
Не, в топку)

Вообще я совет знаю, рспек и так все тестит ок

Alex
08.12.2016
07:14:53
Не, в топку)
Почему? что не так с вебриком?

Evgeny
08.12.2016
07:16:47
Вообще мб и норм, я не спорю, просто раз 5е рельсы, могли бы что то придумать на этот счет. Я видел вроде что gem 'listen' должен был отвечать за изменение в коде где то на гитхабе, но что то видимо пошдл не так)

v
08.12.2016
07:44:24
пагни, а тут вроде бы были любители fish shell

какой у нее профит?

Дмитрий
08.12.2016
07:48:27
во всем круто - только иногда не видит переменные окружения

особенно когда много серваков, не надо листать вверх в поиске предыдущих команд\

Краткий список плюсов Интерактивный режим работы и дружественность пользователю; Подробная и доступная информация о командах делает их поиск значительно проще, чем в man-страницах оболочки bash. И даже если fish не сможет подключиться к X-серверу, для показа справки будет задействован браузер links; Подсветка синтаксиса: при вводе команды буквы выделяются красным цветом, и меняют его на зелёный, если имя команды написано правильно; Названия существующих папок подчёркиваются; Eсть вкладки и история; Достаточно набрать 192 и нажать стрелку вверх как в командной строке будут листаться все когда-либо исполненные команды где фигурировал этот обрывок адреса Если начать набирать команду с начала, то сразу же предлагается продолжение из уже когда-либо выполенно команды, стрелочка направо и вся команда готова к запуску. Спасибо avas за подсказку Fish использует специфические конструкции скриптов, которые проще для начинающих пользователей; Автодополнение здесь лучше, чем в bash, так как fish умеет дописывать опции; Легко читаемый вид функций; Легко настраивать в браузере используя команду fish_config.

это с хабра 2-х летней давности

Google
Дмитрий
08.12.2016
07:52:24
во всем круто - только иногда не видит переменные окружения
помогает только полностью перезапустить терминал

v
08.12.2016
08:00:16
а с chruby/rbenv и т.п. он как?

Дмитрий
08.12.2016
08:01:22
отл, был рвм, ща рбенв - все ок

yopp
08.12.2016
08:09:59
Igor
08.12.2016
08:16:13
jruby.org компилировало.
Читай след сообщения :)

Rafkat
08.12.2016
08:17:42
https://github.com/rails/rails/pull/27300

Alex
08.12.2016
08:38:25
?

Anon
08.12.2016
08:56:19
Есть модель Foo, у которого belongs_to :previous_foo, class_name: "Foo"

Нужно в кверях взять всех foo с заинклуденными previous_foo

Foo.where.not(previous_foo: nil).includes(:previous_foo) Достает foo у которых есть previous_foo, но не иклудит сами previous_foo, на них выдает nil'ы

как легче разрулить?

I
08.12.2016
09:01:57
а как проверяешь, что их не инклудит?

Anon
08.12.2016
09:02:53
foos = Foo.where.not(previous_foo: nil).includes(:previous_foo) foos.first.previous_foo

Я походу накосячил кое-где

хотя не

v
08.12.2016
09:03:47
бле

такие вещи проще реверс-инжинирингом из SQL делать

Anon
08.12.2016
09:05:49
я не понимать почему л

I
08.12.2016
09:06:09
посмотри на запрос сформированный

Anon
08.12.2016
09:06:16
...почему оно ломается на нестандартной ситуации

Google
I
08.12.2016
09:08:04
ну а так тут нужен не includes, поспойлерю я

возьми eager_load

Anon
08.12.2016
09:09:41
поспойлери еще немного, почему не он нужен, если в такой же ситуации без алиасов всё делается как надо, кэширует все что надо без лишних запросов

"SELECT \"foos\".* FROM \"foos\" WHERE \"foos\".\"enabled\" = 't' AND (\"foos\".\"previous_foo\" IS NOT NULL)"Запрос ниочем, как будто инклудс не вызывал

Michael
08.12.2016
09:12:14
а с Foo.where.not(previous_foo: nil).eager_load(:previous_foo) что выдает?

I
08.12.2016
09:12:53
почитай про includes :)

вон даже русскоязычная статья на хабре есть

короткая и ясная

https://habrahabr.ru/post/191762/

Anon
08.12.2016
09:13:25
а с Foo.where.not(previous_foo: nil).eager_load(:previous_foo) что выдает?
То же самое. foo, у которых previous_foo - nil

Прочитал, и читал более глубокие статьи по нему. Решения не нашел

I
08.12.2016
09:18:31
ну раз и глубокие статьи не помогли - печалька

Kirill
08.12.2016
09:18:41
у тебя и связь previous_foo и внешний ключ previous_foo?

Anon
08.12.2016
09:19:09
ну раз и глубокие статьи не помогли - печалька
В твоей статье нет вообще ничего про иклудсы с алиасами, не тролль

I
08.12.2016
09:19:24
с какими алиасами?

Anon
08.12.2016
09:19:29
Kirill
08.12.2016
09:19:54
where.not(previous_foo_id: nil)

Michael
08.12.2016
09:20:09
только хотел написать)))

скорее всего в foos.first какраз и нет previous_foo

Anon
08.12.2016
09:21:35
с какими алиасами?
ну тип что previous_foo_id ссылается на другой foo. Я ж не в первый раз это делаю, я вроде как понимаю что такое includes и eager_load

Google
Alex
08.12.2016
09:22:00
Foo.first.previous_foo_id что дает?

Окей теперь Foo.find(previous_foo_id)

Anon
08.12.2016
09:22:14
скорее всего в foos.first какраз и нет previous_foo
Т.е. я беру те foo у которых есть значение в поле previous_foo_id и у него-то и не оказывается previous_foo?

Michael
08.12.2016
09:22:32
нет

I
08.12.2016
09:22:48
у тебя :"SELECT \"foos\".* FROM \"foos\" WHERE \"foos\".\"enabled\" = 't' AND (\"foos\".\"previous_foo\" IS NOT NULL)" а надо: "SELECT \"foos\".* FROM \"foos\" WHERE \"foos\".\"enabled\" = 't' AND (\"foos\".\"previous_foo_id\" IS NOT NULL)" Ну, точней, надо еще JOIN, но всему свое время

Alex
08.12.2016
09:22:49
что дает Foo.find(previous_foo_id) ?

Michael
08.12.2016
09:22:50
у тебя where.not(previous_foo: nil)

а ты попробуй сделать where.not(previous_foo_id: nil)

Admin
ERROR: S client not available

Kirill
08.12.2016
09:23:07
омг

I
08.12.2016
09:23:30
первый раз слышу "алиас" в этом контексте, обычно все это ссылкой называли

Alex
08.12.2016
09:24:14
Ты там не графы часом строишь?

или дерево?

для этого есть нормальные решения

Anon
08.12.2016
09:24:38
Alex
08.12.2016
09:25:28
Foo.find(Foo.first.previous_foo_id) != Foo.first.previous_foo Верно?

I
08.12.2016
09:25:29
Дает что надо
ну так что, с not(previous_foo_id: nil) попробовал или нет?

I
08.12.2016
09:26:04
да, но ты посмотри в запрос свой внимательно...

у тебя есть в SQL поле previous_foo ?

Google
Anon
08.12.2016
09:26:38
Бля посоны отбой

Я наебал сам себя

I
08.12.2016
09:26:49
=/

Anon
08.12.2016
09:27:12
previous_foo из дефолтного скоупа уходит когда создается foo

потому nil

I
08.12.2016
09:27:32
ты все равно не понял прикола :с

Anon
08.12.2016
09:28:04
да Foo.where.not(previous_foo: nil) и Foo.where.not(previous_foo_id: nil) равнозначные

Рельсы-ПГ достаточно умные чтобы понять что искать надо по id, иначе бы ошибку по column does not exist давали б

Alex
08.12.2016
09:29:34
Запрос то какой уходит лол

Anon
08.12.2016
09:29:38
Вы за меня, как говорится, совсем дурака не держите

Alex
08.12.2016
09:30:05
Ты даже тут фразу неправильно построил.

Anon
08.12.2016
09:30:17
я ее специально неправильно построил же

Гамаз

https://www.youtube.com/watch?v=tizUSGKFkIA

Michael
08.12.2016
09:33:00
то что рельсы достаточно умны, это понятно но ты привел пример запроса, что у тебя выпоняется (\"foos\".\"previous_foo\" IS NOT NULL) а рельсы из .where(previous_foo: nil) должны были сделать (\"foos\".\"previous_foo_id\" IS NOT NULL)

Anon
08.12.2016
09:35:01
то что рельсы достаточно умны, это понятно но ты привел пример запроса, что у тебя выпоняется (\"foos\".\"previous_foo\" IS NOT NULL) а рельсы из .where(previous_foo: nil) должны были сделать (\"foos\".\"previous_foo_id\" IS NOT NULL)
Я не гуру, но учитывая, что запрос выдавал только тот фу, где действительно был превиоус_фу_ид, я лишь могу предположить, что ПГ знает как это разруливать

и не жаловался на несуществующую колонку

Michael
08.12.2016
09:35:26
в общем, слава богу что ты нашел, где у тебя проблема.

Alex
08.12.2016
09:37:12
Тесты напиши на это

Страница 793 из 1684