
Pavel
15.04.2018
11:01:21
# controllers/some_controller.rb
class SomeController
def some_action
render 'awesome.js.erb'
end
end
# views/some/awesome.js.erb
$('.mister_insert_here_please').html(<%= j render('oh_partial') %>)
Если ты про Рельсы
Но лучше конечно просто json слать/принимать, а рендер поручить фронту, реакту, агунляру или что там у тебя

Google

Evgenii
15.04.2018
12:08:21
Коллеги, добрый день. Вопрос такой - мне необходимо организовать роутинг вида site.com/razdel1/razdel2/.../.../.../page razdel2 является дочерним относительно razdel1 и вот такой вложенности можеть быть вариативное количество. Одноуровневое вложение у меня реализовано через get "/:cat/:short" => "posts#show", defaults: {mode:1}, :as => "short", :constraints => PostConstraint.new Есть ли возможность организовать некий констреинт который будет принимать в аргумент вариативное количество :cat? и как собственно должен выглядить такой роутинг get "(/:cat1/:cat2/:cat3/):short" как-то так? Наведите пожалуйста на путь истинный Спасибо большое.

Shamil
15.04.2018
12:35:38


Evgenii
15.04.2018
12:39:43
Ну как обычно, задал вопрос и нашел частичное решение. Wildcard. Get "*cat/page" в мануале стандартном написано, как ни странно
И в пути может быть хоть сотня этих подвложений в пути. А уж как их там парсить и чекать дело уже третье.

Shamil
15.04.2018
13:30:56
Да, если подумать все верно. Это же просто функция принимающая параметры.)

mike
15.04.2018
14:39:14
да в рубях, по сути, практически всё и есть метод и параметры

Антон
16.04.2018
05:20:38
только вот пользователи такими урлами редко пользуются
им просто ссылку надо, а из каких категорий состоит этот урл всем по большому счету наплевать

Silent Bob
16.04.2018
08:42:04
Подскажите плиз:
Есть модель Storage. Имеет атрибут storage_type (скажем к примеру yandex_disk, dropbox, s3).
В зависимости от типа, должны быть разные настройки (атрибут settings) для доступа к этому хранилищу (логин, пароль, апи кей и т.д.)
Вариант с STI сразу отпал, т.к. у каждого типа стораджа совершенно разные настройки.
Я больше всего склоняюсь к serialize (хранить настройки в виде хеша), но непонятно как тут настраивать валидации для этого хеша,
+ как это реализовать с помощью form_for (т.е. по идее форма должна быть аяксовая, когда юзер выбирает тип, подгружаются соответствующие поля этого типа).
Может есть тру решение в этом случае?

Антон
16.04.2018
08:46:08
тру решение сначала должно быть выполнено максимально просто и работать
а потом уже смотреть, тру оно или не тру

Silent Bob
16.04.2018
08:46:36
ну ок, как тут максимально просто сделать?

Антон
16.04.2018
08:46:48
для каждого стораджа своя форма
сеттинги сериализовывать, наверное, да
я бы так попробовал сначала - так проще всего

Google

Антон
16.04.2018
08:48:17
особенно в условиях когда поиск по ним не нужен
скорее всего это будет все нормально работать, не требовать рефакторинга, не требовать всяких извращений типа STI, не создавать нагрузки итп
сделать и забыть
и прочитать сможет любой джуниор

Silent Bob
16.04.2018
08:50:39
а как понимать, какую форму рендерить, для какого типа? У меня идея есть что на роуте /storages#index кнопка добавить новый сторадж, сделать ее в виде разворачивающегося списка что ли, т.е. жмем добавить, появляется список где уже можно выбрать конкретный тип сторажда. Когда тип выбирается (к примеру яндекс диск), посылается запрос на контроллер storages/new&type=yandex_disk таким образом сразу знаем какую конкретную форму рендерить

Антон
16.04.2018
08:52:29
хорошая идея
Антон Давыдов не согласится, но его можно позвать когда нужно будет рефактори, если нужно будет

Silent Bob
16.04.2018
08:53:14
понял, спасибо

Anton
16.04.2018
08:54:01
Только я бы настройки такие в жсон хранил

Andrey
16.04.2018
09:30:27
Всем привет!
Подскажите пожалуйста, как правильно сделать.
Есть на сайте форма регистрации через соц сети, но если юзер уже в базе — он просто авторизоовывается.
Нужно под это дело настроить цели яндекс метрики, тоесть под одну форму, под одну кнопку — разные действия.
Есть идея сделать ее флеш сообщениями, но может есть другой выход?

Антон
16.04.2018
09:33:24
Только я бы настройки такие в жсон хранил
это опасно, когда джуны видят json в субд, то начинают туда все пихать
потом им становится плохо, потом они начинают пить и болеть с похмелья каждое утро
ну и дальше по кругу

Anton
16.04.2018
09:35:14

Антон
16.04.2018
09:36:07
да, но все умные дяди уже расползлись по вкусным проектам с креслами с подогревом, и гарантировать адекватный ревью трудно
мне щас достался проект в "овер 9000" строк кода в котором нет тестов вообще
и таких проектов по моему опыту далеко не меньшинство

Pavel
16.04.2018
09:39:25

Антон
16.04.2018
09:39:40
ну или такая ситуация много раз была:
-- А давайте ревьюить!
-- А давайте
и только успеваешь нотификации заркывать: merged, merged, merged
а там в дифах - binding.pry

Смерть
16.04.2018
09:40:40

Антон
16.04.2018
09:40:57
и комит мессадж "fucked pry"
чота накипело похоже :)

Dmitry
16.04.2018
09:41:44
Так у меня тг заблочили ироды

Google

Dm
16.04.2018
09:42:01
хехе )

Pavel
16.04.2018
09:42:18
С одного фрилансера, который не может выбить бюджет на тесты
Я писал первый проект еще бесплатно, в 2011, кодить почти не умел, но очень хорошо знал доменную область. А этот костыльный проект живет, развивается и испольуется в 7 компаниях со штатом по 300 человек. Но внутрь лучше не залазаить, зато клиентам нравится

Антон
16.04.2018
09:43:14
суккес сториз не учат ни чему ?

Pavel
16.04.2018
09:43:39
Точняк)

Igor
16.04.2018
09:57:21
А есть best practic когда для АПИ метода в Get параметре надо передать очень много фильтров (например сотня идентификаторов)? Менять get на post\put и делать другой endpoint?

Dmitry
16.04.2018
10:00:02
подскажите в 4 рельсе пытаюсь метод модели изменить из плагина ( все это в redmine поисходит) написал https://paste2.org/4s8vd7mO но магии не произошло

Alexander
16.04.2018
10:06:19

Антон
16.04.2018
10:15:48
щас ещё есть byebug- обнови hook

Darth
16.04.2018
10:19:15

Alexander
16.04.2018
10:20:29
в любом git репозитории локально есть директория .git/hooks/ с примерами
конкретно мой хук
#!/bin/sh
if grep -R --include="*.rb" "binding.pry\|nocommit" --quiet .
then
cat <<\EOF
Error: You have a debugger (binding.pry) or "nocommit" in your source code.
Please remove it before commit.
EOF
exit 1
fi
нужно еще правильные права ему дать chmod a+x .git/hooks/pre-commit

ojab
16.04.2018
10:26:21
а лучше заюзать rubocop --only Lint/Debugger

pny
16.04.2018
10:30:59

ojab
16.04.2018
10:33:53
или руби и рубокоп, или неполноценная проверка, да

Vasiliy
16.04.2018
11:01:09
ребят а как параметры в urlencoded передать чтобы они были как массив в джейсоне
т.е. в жс у меня как-то так идут "persons": [{"name":1}, {"name":2}] в урленкоде пробую так сделать persons[][name]:1&persons[][name]:2 но как вы поняли второе присваивание затирает

ojab
16.04.2018
11:20:36
[1] pry(main)> URI.decode({ "persons": [{"name":1}, {"name":2}] }.to_query)
=> "persons[][name]=1&persons[][name]=2"
не?

Pavel
16.04.2018
11:22:04

ojab
16.04.2018
11:22:42
а, жс ._.

Vasiliy
16.04.2018
11:23:49
с одинаковыми именами норм, но там вложенная структура
"persons"=>[{"name"=>"test4"}, {"name"=>"test5"}]
так то норм, но если ещё добавить атрибут то как-то так рельса раздупляет
"persons"=>
[{"name"=>"test4"},
{"name"=>"test5", "status"=>"disabled"},
{"status"=>"disabled"}],

Google

Vasiliy
16.04.2018
11:24:25
с жсом то я знаю как сделать ? рельса его норм жрет, просто хотелось бы сделать одинаковое поведение для жсона и форм энкодед

Admin
ERROR: S client not available

hotline
16.04.2018
12:37:39
Привет! а кто-то использовал redis? как правильно чекнуть конекшн с сервером?

Aleksey
16.04.2018
12:40:34
не знаю насколько “правильно”, но мы юзаем redis_client.info

ojab
16.04.2018
12:41:00

hotline
16.04.2018
12:41:42
спасибо
а перед redis.connected? нужно проинициализировать в redis – Redis.new ?
правильно?

ojab
16.04.2018
12:44:01
redis = Redis.new

hotline
16.04.2018
12:44:20
ага спасибо!
отдает false

ojab
16.04.2018
12:46:36
а, тебе проверить устанавливается ли вообще соединение? Тогда redis.ping.

Sergei
16.04.2018
12:54:06
какой гем проще всего прикрутить для бота телеграм для socks5 vs auth
пока что юзал net-https
попытался прикрутить к нему gem 'socksify'
но он не поддерживает auth получается надо ещё развернуть данте client - socksyfy на сервере, чтобы был локальный сокс сервер без ауторизации... но чёто сожно получается как-то

ojab
16.04.2018
12:54:59
можешь заюзать socksify из https://github.com/astro/socksify-ruby/pull/24
или заюзать что-нибудь использующее curl (например https://github.com/typhoeus/ethon), оно всё умеет

Silent Bob
16.04.2018
15:52:00
для каждого стораджа своя форма
Я вот момент про валидации забыл уточнить. serialize можно как то валидировать? Оснобенно если хеш options может быть разный, в зависимости от типа модели
гуглил по этому поводу, но так ничего толкового и не нагуглил

s
16.04.2018
16:01:16
reform, dry-valiadations

Александр
16.04.2018
16:03:38
Всем привет, кто работал с ActiveModel::Serializer? Как сделать что бы аттрибут появлялся по условию? include_attribute? не работает

Антон
16.04.2018
16:04:22

Google

Антон
16.04.2018
16:06:02
можно конечно кастомную валидацию нарисовать но это rails way, это ну такое
не ожидал что такое когда-либо скажу

ⰿⰰⰾⱏ
16.04.2018
16:22:25

Александр
16.04.2018
16:25:13

pny
16.04.2018
16:56:51
module IncludesSerializer
def includes_attributes(*attributes)
attributes.each do |name|
self.attribute name, if: -> { instance_options;(instance_options[:includes] || []).include?(name.to_s) }
end
end
end
и extend IncludesSerializer
в необходимом сериалайзере
и includes_attributes :id, :name
например
И вызывать сериалайзер передавая туда includes: ['id', 'name']

vizvamitra
16.04.2018
17:59:57
Ребят, не знаете, что-нибудь из рубишной инфраструктуры хостится на гугле или амазоне?
А хотя вряд ли

Rustam
16.04.2018
18:01:50
поидее хостится