
Dima
17.05.2018
07:55:56
Т.е. конкретно к Vscode это вряд ли относится: https://github.com/castwide/solargraph

kolas
17.05.2018
07:57:24
я соларграф для вскода использовал, но потом вырубил его - слишком сильно цпу и озу ест

Subb98
17.05.2018
07:57:29
Ну вот у меня прямо сейчас VSC открыт, Ruby проект. Из коробки не умеет точно. Пакеты разные ставил, ничего не получилось. Для php работает, например.

Google

Subb98
17.05.2018
07:58:17
А, ему gem нужен.

Dima
17.05.2018
07:59:21
https://github.com/rubyide/vscode-ruby/issues/294

Subb98
17.05.2018
07:59:59
Спасибо, сейчас попробую заюзать. Интересно, получится ли избавиться от RubyMine.

Vyacheslav
17.05.2018
08:32:23
а vim кто-то использует?

Dima
17.05.2018
08:36:57

Subb98
17.05.2018
08:37:28
@lbvf50 спасибо, некоторых улучшений добиться удалось. Не так, как в RubyMine, конечно, но пойдёт. )

Dima
17.05.2018
08:37:41

Vyacheslav
17.05.2018
08:39:24
я сейчас использую в связке vim + tmux
вариант для ruby ide на vim: https://github.com/lucerion/vim-as-a-ruby-ide

Dima
17.05.2018
08:40:36
но как-то время на это тратить нет особого желания.
чтоб перехоидть на такие редкие инстурменты

Google

Anton
17.05.2018
09:10:55

ShadoWalkeR
17.05.2018
09:15:20
Когда много по ssh работаешь тот же screen далеко не редкий инструмент - при обрыве сетевой сессии выполнение в нем продолжится. Кроме того это очень удобно коллегам сессию расшаривать - им достаточно подключиться к той или иной консоли screen

Dima
17.05.2018
09:27:44

Vyacheslav
17.05.2018
09:28:39
это высший сорт. я слышал о мультиплексторах терминалов
я много с Perl работаю, а там мало нормальных редакторов (было до последнего времени, сейчас есть плагин для IDEA/WebStorm - Camelcade, ну и vs code). В связке vim + tmux работаю последние 3 месяца, до этого был gvim + tmux (переключался между gvim и tmux-консолью)
screen - это аналог tmux

Dima
17.05.2018
09:29:04

Vyacheslav
17.05.2018
09:29:26

Dima
17.05.2018
09:29:32
https://www.gnu.org/software/screen/

ShadoWalkeR
17.05.2018
09:29:33
tmux — свободная консольная утилита-мультиплексор, предоставляющая пользователю доступ к нескольким терминалам в рамках одного экрана. tmux может быть отключен от экрана: в этом случае он продолжит исполняться в фоновом режиме; имеется возможность вновь подключиться к tmux, находящемуся в фоне. tmux является штатным мультиплексором терминалов операционной системы OpenBSD. Программа tmux задумывалась как замена программы GNU Screen.

Anton
17.05.2018
09:29:50

ShadoWalkeR
17.05.2018
09:29:50
apt/yum install screen/tmux

Anton
17.05.2018
09:29:52
https://en.wikipedia.org/wiki/Tmux

Vyacheslav
17.05.2018
09:31:03
в tmux удобно выводить логи в нескольких панелях/окнах для разных сервисов

Vasya
17.05.2018
09:46:31
Народ, кто-то уже деплоил через capistrano проект на rails 5.2 с новыми credentials?

Alex
17.05.2018
09:47:05
ENV'ы наше все

Vlad
17.05.2018
10:03:52
Ребята как пофиксить проблему того что после деплоя код на серваке обновился но сам сайт никаких изменений не принял, пробовал через капистрано запускать deploy:restart но не помогло, на самом серваке ни пума ни нджынкс перезапускаться не хотят командами sudo service puma restart

Alex
17.05.2018
10:04:31
у puma есть touch tmp/restart.txt вроде

Дарья
17.05.2018
10:15:01
Ребята, всем привет! нам в команду нужен руби, могу сюда скинуть предложение?
даже в две команды нужен)

Google

Aldar
17.05.2018
10:17:11

Alex
17.05.2018
10:17:25

Дарья
17.05.2018
10:17:54
?

D
17.05.2018
10:35:49
/etc/sudoers

Alex
17.05.2018
10:36:48

D
17.05.2018
10:38:47
для его пользователя может быть запрешено или разрашено "только" чтото опредеено кроме рестартов.

q3n0x
17.05.2018
12:17:21
Ребят подскажите пжлст в каком направлении гуглить?
1. Имеется модель "Team", has_many :users.
2. У "User" есть поле last_sign_in_at (datetime).
Нужно вернуть список Team с максимальным last_sign_in_at среди юзеров этой команды.
Т.е. в результате должен быть массив с экземплярами модели Team + дополнительно высчитанное поле last_sign_in_at, чтобы вывести во вьюхе как team.last_sign_in_at

Lupsick
17.05.2018
12:17:38
https://github.com/facebook/relay/issues/1883

Alex
17.05.2018
12:51:32

q3n0x
17.05.2018
12:56:47

Damir
17.05.2018
12:58:29

Vasya
17.05.2018
12:59:34
Выпригивает ActiveSupport::MessageEncryptor::InvalidMessage: ActiveSupport::MessageEncryptor::InvalidMessage
при деплое с capistrano и новыми рельсами с credentials
Может, кто сталкивался?

q3n0x
17.05.2018
13:02:44
Team.joins(:users).merge(User.order(last_sign_in_at: :desc).limit(1))
Попробовал:
Team.joins(:users).merge(User.order(last_sign_in_at: :desc).limit(1))
Team Load (1.8ms) SELECT "teams".* FROM "teams" INNER JOIN "users" ON "users"."team_id" = "teams"."id" ORDER BY "users"."email" ASC, "users"."last_sign_in_at" DESC LIMIT 1
ActiveRecord::AssociationNotFoundError: Association named 'team' was not found on Team; perhaps you misspelled it?
Не пойму почему join по teams.id, должен же по team.id?
и как это "Association named 'team' was not found on Team" о_О его там и нет

Alex
17.05.2018
13:03:00

q3n0x
17.05.2018
13:04:22

Damir
17.05.2018
13:10:52

q3n0x
17.05.2018
13:11:09

ojab
17.05.2018
13:11:52
.order('users.last_sign_in_at').distinct(:id).select(*Team.coumn_names, 'users.last_sign_in as last_sign_in')?

Damir
17.05.2018
13:12:22

q3n0x
17.05.2018
13:15:04

Google

Gleb
17.05.2018
13:29:15
а чего не .order('users.last_sign_in_at DESC')

q3n0x
17.05.2018
13:33:16

Иван
17.05.2018
13:46:38
тебе dictinct on нужен насколько я понимаю

Damir
17.05.2018
13:51:33

q3n0x
17.05.2018
13:52:29

Иван
17.05.2018
13:54:32
попробуй что то вроде этого -
Team.joins(:users).select("DISTINCT ON (users.team_id) *, users.last_sign_in as last_sign_in").order("users.team_id, users.last_sign_in as DESC")

Vyacheslav
17.05.2018
14:10:12

q3n0x
17.05.2018
14:20:12

Ēľ Ċāƥīāŋ Ƭīʋȷɍēś
17.05.2018
16:14:12
В глаза балуюсь, нашел
Нельзя ли там делать user Where order ?
Если нужно ещё лимиты добавить, там вроде были в ваших запросах

Иван
17.05.2018
16:41:02
что нибудь типо -
Team.joins("INNER JOIN users ON users.team_id = teams.id AND users.last_sign_in = (SELECT MAX(last_sign_in) FROM users WHERE team_id = teams.id)").select("teams.*, users.last_sign_in as last_sign_in")

Ēľ Ċāƥīāŋ Ƭīʋȷɍēś
17.05.2018
16:59:32

ojab
17.05.2018
17:32:53
плохо выглядит
простыня sql'а, да ещё и с MAX'ом

Ēľ Ċāƥīāŋ Ƭīʋȷɍēś
17.05.2018
17:33:37

ojab
17.05.2018
17:33:43
а я уже давал

Google

ojab
17.05.2018
17:34:27
он, конечно, тоже не очень, но уж каковы исходные данные

Ēľ Ċāƥīāŋ Ƭīʋȷɍēś
17.05.2018
17:47:42
Тс уже ушел, а обсуждение нет))


skynet
17.05.2018
18:02:01
всем привет, ребят... сильно стремно выглядит?
# settings controller
...
def update_email
if @user.update_without_password(email_params)
flash[:success] = "#{I18n.t 'controllers.settings.update_email.success'}"
else
render :edit
end
end
def update_password
if @user.update_with_password(password_params)
bypass_sign_in(@user)
flash[:success] = "#{I18n.t 'controllers.settings.update_password.success'}"
else
render :edit
end
end
...
# routes.rb
...
get 'settings', action: :index, controller: 'settings'
patch 'update_email', action: :update_email, controller: 'settings'
patch 'update_password', action: :update_password, controller: 'settings'
...
# index.html.haml
...
= simple_form_for(@user, url: update_email_url(@user), html: { method: :patch }, wrapper: :email_form) do |f|
...
= simple_form_for(@user, url: update_password_url(@user), html: { method: :patch }, wrapper: :password_form) do |f|...
2 формы во вьюхе, 2 экшна для формы.. но экшны похожи, есть смысл так оставить или однозначно рефакторить?


Lavrushchik
17.05.2018
18:05:48
кто-нибудь знает, как в prawn изменить ориентацию страницы?

skynet
17.05.2018
18:08:29
https://www.rubydoc.info/gems/prawn/Prawn%2FDocument:initialize

Lavrushchik
17.05.2018
18:08:52
page_layout: :landscape?
не помогает
упс) rotate забыл убрать)


ojab
17.05.2018
18:12:25
всем привет, ребят... сильно стремно выглядит?
# settings controller
...
def update_email
if @user.update_without_password(email_params)
flash[:success] = "#{I18n.t 'controllers.settings.update_email.success'}"
else
render :edit
end
end
def update_password
if @user.update_with_password(password_params)
bypass_sign_in(@user)
flash[:success] = "#{I18n.t 'controllers.settings.update_password.success'}"
else
render :edit
end
end
...
# routes.rb
...
get 'settings', action: :index, controller: 'settings'
patch 'update_email', action: :update_email, controller: 'settings'
patch 'update_password', action: :update_password, controller: 'settings'
...
# index.html.haml
...
= simple_form_for(@user, url: update_email_url(@user), html: { method: :patch }, wrapper: :email_form) do |f|
...
= simple_form_for(@user, url: update_password_url(@user), html: { method: :patch }, wrapper: :password_form) do |f|...
одноцветная простыня кода со сбитым форматированием всегда стрёмно выглядит, gist мгновенно уменьшает степень стрёмности


Lavrushchik
17.05.2018
18:12:29
а не, нифига, не работает

skynet
17.05.2018
18:12:46


Alexander
17.05.2018
18:13:58
всем привет, ребят... сильно стремно выглядит?
# settings controller
...
def update_email
if @user.update_without_password(email_params)
flash[:success] = "#{I18n.t 'controllers.settings.update_email.success'}"
else
render :edit
end
end
def update_password
if @user.update_with_password(password_params)
bypass_sign_in(@user)
flash[:success] = "#{I18n.t 'controllers.settings.update_password.success'}"
else
render :edit
end
end
...
# routes.rb
...
get 'settings', action: :index, controller: 'settings'
patch 'update_email', action: :update_email, controller: 'settings'
patch 'update_password', action: :update_password, controller: 'settings'
...
# index.html.haml
...
= simple_form_for(@user, url: update_email_url(@user), html: { method: :patch }, wrapper: :email_form) do |f|
...
= simple_form_for(@user, url: update_password_url(@user), html: { method: :patch }, wrapper: :password_form) do |f|...
вообще можно это сделать внутри users_controller и обновлять внутри какого нибудь сервис-объекта


skynet
17.05.2018
18:15:34

Alexander
17.05.2018
18:17:28

skynet
17.05.2018
18:17:43
гист
https://gist.github.com/Dimetriu/a2c2671352ca0ac08ae86cf785dfdd68

ojab
17.05.2018
18:19:26

skynet
17.05.2018
18:19:49
да, все верно, там нужен settings_controller в котором юзер может менять имейл отдельно от пароля и наоборот, я пробовал в одном экшне, но если параметры объединить (permitted_params), то девайс не меняет имейл

Alexander
17.05.2018
18:19:59