
Andrey
27.01.2018
15:41:18
В 2018 году на мак?
Сорри, если тупой вопрос =)))

Nikita
27.01.2018
15:42:42
В смысле актуальный?
Ну rvm или rbenv, что больше нравится

Google

v
27.01.2018
15:43:31
но немодный

Andrey
27.01.2018
15:43:40
А какой модный? =)

v
27.01.2018
15:43:50
asdf

Andrey
27.01.2018
15:43:55
Просто не занимался руби с 2013 =)
Немного потерял нить
asdf это модный способ? =)

Stanislav
27.01.2018
15:44:33

Andrey
27.01.2018
15:45:11
Пипец - это реально так lib называется =)

Nikita
27.01.2018
15:45:46
Да через рвм делай и не парься

Stanislav
27.01.2018
15:46:03
стоп юзать рвм, рбенв получше
я заебался тут выковыривать системный рвм

Nikita
27.01.2018
15:46:18
Чем?)

Google

Andrey
27.01.2018
15:46:20
А можно один ответ? =)

Stanislav
27.01.2018
15:47:20
Чем?)
быстрее обновляется и не такой тяжелй, один хер на продакшене обычно не юзают гемсеты

v
27.01.2018
15:47:39

Oleg
27.01.2018
15:50:50

?
27.01.2018
16:28:21

nikita
27.01.2018
16:42:37
https://rvm.io/gemsets/basics

v
27.01.2018
16:42:51

ojab
27.01.2018
16:47:29
bundle это и без гемсетов умеет

Rustam
27.01.2018
17:04:11
но только с gemfile/lock файлами

ojab
27.01.2018
17:05:58
и?
один фиг непонятно, для чего предполагается юзать гемсеты.

Danila
28.01.2018
05:00:53
Здравствуйте, извините за беспокойство, мы команда разработчиков (30 человек) с Южной Кореи, учимся в г. Владивостоке, имеем колоссальный опыт в программировании, готовы сотрудничать.

Антон
28.01.2018
07:47:07
А в чем сотрудничество может быть? Вас учить разработке? Проекты ваши чинить?

v
28.01.2018
07:47:21

Антон
28.01.2018
07:48:08
Колоссальный это скока? ?

v
28.01.2018
07:49:30
@homo_vespertilio так как ты с Go, освоился, или не нашел проекта?

Антон
28.01.2018
07:50:19
нет времени
а там говорят просто все, особо нечего осваивать то, а что?

v
28.01.2018
07:52:35
ну это как С
синтаксис примитивный

Google

v
28.01.2018
07:53:03

Антон
28.01.2018
07:53:30
вердикт будет: збс

Nursultan
28.01.2018
07:56:32

Oleg
28.01.2018
09:01:11
почему рельс делает два запроса в такой конструкции:
Conversation.includes(:messages, :first_user, :second_user).where("first_user_id = :user OR second_user_id = :user", { user: 1 })
Результат запроса:
Conversation Load (0.3ms) SELECT "conversations".* FROM "conversations" WHERE (first_user_id = 1 OR second_user_id = 1)
Message Load (0.5ms) SELECT "messages".* FROM "messages" WHERE "messages"."conversation_id" IN (1, 2)
User Load (0.4ms) SELECT "users".* FROM "users" WHERE "users"."id" = 1
User Load (0.4ms) SELECT "users".* FROM "users" WHERE "users"."id" IN (3, 2)
Два раза делает запрос к таблице Users
В моделях только отношения прописаны не более

Igor
28.01.2018
09:25:25
а зачем инклудить юзеров

Oleg
28.01.2018
09:38:23
для дальнейшей логики нужны
есть диалоги - conversation. есть сообщения - message. вот и хочу вытащить все диалоги текущего пользователя + сообщения относящиеся к диалогам

Richard
28.01.2018
09:59:30
а почему includes, а не joins?

Eugene
28.01.2018
13:01:50

Oleg
28.01.2018
13:06:06
Что-то видимо не то начал делать)

Eugene
28.01.2018
13:06:22
Можно эти твои 3 запроса в один превратить:
Conversation.joins(:messages).joins(«INNER JOIN users ON users.id = ?», 1)
это если нет ассоциации прямой от конверсайшон ко всем юзерам
добавль
Conversation
belongs_to :user

Oleg
28.01.2018
13:07:20
Сейчас попробую

Eugene
28.01.2018
13:07:31
тогда будет просто
Conversation.joins(:user, :message).where(user: {id: 1})

Oleg
28.01.2018
13:07:55
а, у меня ведь 2 поля - first_user и second_user
указывающее на какие пользователи учавствуют в диалоге

Eugene
28.01.2018
13:08:40
а задача какая ?

Google

Oleg
28.01.2018
13:09:13
типа получатель и отправитель

Eugene
28.01.2018
13:09:19
эт опнял

Oleg
28.01.2018
13:09:20
Сделать чатик)

Eugene
28.01.2018
13:09:23
запросом что дернуть надо?

Oleg
28.01.2018
13:10:03
но много внутренних примочек - прочитанные и не прочитанные сообщения, удаление диалогов с какой-то одной стороны, то у другой стороны диалог остается
диалоги пользователя и последнее сообщение в диалоге

Eugene
28.01.2018
13:10:54
ну тебе надо какому-то одному пользаку показат ьего диалоги , верно ?

Oleg
28.01.2018
13:11:31
весь диалог не проблема, нужно все показать и последнее сообщение диалога для конкретного пользователя
в целом, да верно
покажу что на выходе надо и получилось, но есть дубликаты в запросах
сейчас сделал так:
conversations: [
{
id: 1,
title: "Пользователь №1",
message: {
body: "Тестовое сообщение"
}
}
]
title сам делаю так: current_user.id == first_user.id ? second_user.name : first_user.name

Eugene
28.01.2018
13:15:17
я бы на твоем месте поменял название полей

Oleg
28.01.2018
13:15:26
например?

Eugene
28.01.2018
13:15:27
не first_user и second_user
а sender и receiver

Oleg
28.01.2018
13:16:11
есть такое в таблице messages
только ведь от названия ничего не меняется

Eugene
28.01.2018
13:16:56
понимать сложнее)
какой смысл у conversation если есть messages ?

Google

Oleg
28.01.2018
13:18:55
Без диалогов не могу сообразить, как сделать сообщения с таким функционал: чтобы показывать сколько непрочитанных сообщений и возможность удалить одним пользователем диалог, а у другого он остается)
А так у меня есть запрос, который группирует сообщения по "диалогам", но не знаю, как туда встроить вышеописанный функционал
в conversations хочу кешировать прочитанные и не прочитанные сообщения - counter + указывать, какой пользователь удалил диалог

Eugene
28.01.2018
13:28:57
ну у message сделай атбитут «прочитанное»

Oleg
28.01.2018
13:37:36
Есть такой атрибут. Как вывести количество их? не прочитанных
в кастомном запросе имею ввиду
именно для user'a который открыл "диалоги"

Rafkat
28.01.2018
15:51:21
Прислали техническое задание, и там такой вопрос, реализуете какую нить задачу,и которая вам нравится
Что можно наполнить интересно
На руби

Anton
28.01.2018
16:00:24
В плане?

Igor
28.01.2018
16:00:40
дичь

Fedor
28.01.2018
16:01:50

Максим
28.01.2018
16:02:07
Сортировку какую
Или с деревьями/графами чего запили

Fedor
28.01.2018
16:02:28
Хотя если это "техзадание", то лучше сразу в черный список заказчика

Максим
28.01.2018
16:02:28
Или для работы с апи например банка сделай класс