
Silent Bob
05.04.2018
19:06:49
все таки мне кажется что с двумя отдельными моделями Admin и Manager + include модуль с общими методами будет понятнее

Roman
05.04.2018
19:06:56
связь 1 к N не порождает новую табл

Ruslan
05.04.2018
19:07:30
смотря как это юзать
я имею ввиду, как в конечном счете будет работать эта связь

Google

Silent Bob
05.04.2018
19:08:27
ну админы к примеру не могут вообще никак управлять или видеть чужих менеджеров

Roman
05.04.2018
19:08:35
если не нравится admin_id можно просто parent_id. И хоть 100500 ролей тогда добавлять. Если роли наследуют друг друга.

Silent Bob
05.04.2018
19:08:59
т.е. группы админ + менеджеры должны быть полностью изолированы между собой

Ruslan
05.04.2018
19:09:15
у тебя может быть так, что 2 админа будут связаны с 1 менеджером?

Silent Bob
05.04.2018
19:09:24
нет

Ruslan
05.04.2018
19:09:37
ну тогда да, таблица не нужна

Максим
05.04.2018
19:09:48
А если попросят

Roman
05.04.2018
19:10:14

Ruslan
05.04.2018
19:10:19
потому что если будет 2 админа 1 менеджер, это как раз юзкес чтобы юзать одельную таблицу

Silent Bob
05.04.2018
19:10:24

Ruslan
05.04.2018
19:10:53
группа = админ юзер?

Google

Roman
05.04.2018
19:10:59
тогда на программном уровне нужно будет проверять, чтобы один админ был

Silent Bob
05.04.2018
19:11:00
два админа из разных компаний не могут иметь одного и того же менеджера

Ruslan
05.04.2018
19:11:18

Roman
05.04.2018
19:11:39
не проблема, но лучше нормально спроектировать

Silent Bob
05.04.2018
19:11:54

Roman
05.04.2018
19:12:00
тогда не нужно будет ничего думать лишнего

Ruslan
05.04.2018
19:12:27
админ должен быть один на компанию)
ты кстати не ответил что у тебя будет компанией, если у тебя компания это отдельная сущность, я бы к ней привязывал менеджеров, а не к админу

Silent Bob
05.04.2018
19:13:02

Ruslan
05.04.2018
19:13:35
ну мне кажется правильнее будет выделить отдельную модель с связью 1 к 1, а компания будет 1 к Н иметь менеджеров
потому что у тебя тогда будет админ перемешиваться с компанией
и если у нее будет атрибуты не нужные для юзера это будет плодить ненужные атрибуты всем юзерам

Roman
05.04.2018
19:14:19
связь 1 к 1 - это просто поле юзеру добавить )

Silent Bob
05.04.2018
19:14:50
ну в целом согласен, было бы удобно сразу сгруппирировать админа и менеджеров под одной компанией. @company.admin , @company.managers

Ruslan
05.04.2018
19:15:06
ну можно и так, а можно и заготовку на будущее сделать и в компании хранить user_id
сначала у тебя будет has_one
а потом легко переделать на has_many

Roman
05.04.2018
19:16:12
а почему не в юзера company_id ?

Silent Bob
05.04.2018
19:16:28
понял, Спасибо большое всем за помощь, прояснилось многое))

Ruslan
05.04.2018
19:17:04

Google

Roman
05.04.2018
19:18:51
так это не мешает добавлять компании. Но можем в будущем привязать несколько админов

Ruslan
05.04.2018
19:19:01
а то сегодня компания, завтра там не знаю, еще какая-то сущность, и модель юзера будет иметь 100500 форинкеев, но зачем?
по моей структуре админ 1, он владелец этой компании

Roman
05.04.2018
19:19:41
по твоей - да, один

Ruslan
05.04.2018
19:19:43
а админов можно как менеджеров инклюдить если нужно

Silent Bob
05.04.2018
19:19:58

Roman
05.04.2018
19:20:00
не всё нужно в юзера выносить. Нужно анализировать предметную область

Ruslan
05.04.2018
19:20:32
верно, но она имеет свойство меняться и подумать лучше оптимальный вариант, чем первый простой
потому что кто знает, что клиент захочет через год
а потом переделывать и писать рейки на миграцию связей хоть не сложно, но зачем?

Roman
05.04.2018
19:22:25
да, но так мы привязываем жестко одного юзера.

Ruslan
05.04.2018
19:22:34
как владельца
нас же никто не ограничивает
добавить админов как членов компании, как менеджеров

Roman
05.04.2018
19:23:43
а как они будут появляться в системе?
админ регать?

Ruslan
05.04.2018
19:24:03
если будет связь как ты предлагаешь, то мы не сможем обычным способом указать владельца, только выходит юзера, который был раньше всех зареган с этой компанией

Roman
05.04.2018
19:24:58
ну так правильно

Ruslan
05.04.2018
19:26:05
такое, не самый надеждый способ
особенно если кейс добавления админа в компанию, который был зареган раньше твоего

Google

Ruslan
05.04.2018
19:26:45
то он выходит станет ее владельцем
пабам

Silent Bob
05.04.2018
19:26:53
админ регать?
я думаю админ регается сразу вместе с компанией, через одну форму

Roman
05.04.2018
19:27:45
регаешь нового и прязываешь всех от старого, вариант же)
хоть немного и костыльный

Ruslan
05.04.2018
19:28:47
ну вот в моей логике костыля не будет) и зато можно гибко еще задавать права в рамках организации для каждого юзера, будь то админ или менджер, если вдруг и такое нужно будет сделать
у меня просто как-то был проект, похожего рода, когда есть юзера с компанией и у нее есть мемберы, с разным уровнем прав
и структура была примерно такого вида

Roman
05.04.2018
19:32:09
самый простой варант как мне кажется- это добавить поле company_id, и обычные роли admin или manager

Ruslan
05.04.2018
19:33:40
простой но не гибкий, особенно, раз все же логичнее вынести в компанию отдельно от юзера (к примеру у нее будет имя, это что мы у юзера будем еще хранить company_name?)

Roman
05.04.2018
19:34:19
нет, отдельная сущность
форинкей в юзера
связь 1 к N именно так конвертится
в какую-то из табл выносим ключ с другой

Ruslan
05.04.2018
19:36:32
вариант конечно рабочий, но я уже писал, какие ограничения он наложит, а чем по 10 раз переделывать проще сделать с меньшей кровью

Roman
05.04.2018
19:36:59
ок)
я тут одну проблему не могу решить, мож есть идеи у кого.
при загрузке приложения загружаются параметры класса и где-то кешируются. В нутрях элементы добавляются динамически, можно ли как-то перелоадить параметры в рантайме?

George
05.04.2018
20:29:25
вот да, спс наверное модулями лучше
Проясните идею с модулями?
Пример с STI на мой взгляд вполне хорош, потому что предотвращает кучу геммороя при relations - когда надо разных пользователей к чему-то привязать, например. Несколько раз разносил по таблицам в проектах - пришел к выводу что ничего кроме какой-то ненужной волокиты не выиграл.
Доступы вообще через cancan можно отдельно прописывать.
А что дают модули и include Просто паттерн не совсем понятен.
И еще тут вообще размышления для аналитика на проекте - "роль" - это свойство юзера или свойство привязки юзера к объекту. Он может где-то быть админом, а где-то - юзером?

Ruslan
05.04.2018
20:38:53
в данном случае STI не нужен, усложнит проект, тут просто нет в этом необходимости.
Роль, ну, на мой взгляд достаточно поля (enum), если не планируются каких-то сложных пермишенов, а если что это не сложно будет переделать на более продвинутую структуру с таблицей ролей

Google

George
05.04.2018
20:43:34
Согласен

Alexander
06.04.2018
06:36:09
Всем привет. Никто не сталкивался с проблемой долгой перезагрузки кода Rails приложение, когда что-то меняешь в исходнике (на рендер станицы уходит 15 секунд, в обычных условиях, оно меньше 1 секунды), я поинмаю, что надо код перезагрузить, но всеже время какой-то странное.

Vasiliy
06.04.2018
07:14:17
Спринг воткни попробуй

Alexander
06.04.2018
07:22:16
Так с ним

pny
06.04.2018
07:22:26
А что именно ты меняешь? Код или css js?

Alexander
06.04.2018
07:24:53
rb
когда js/css быстро

Максим
06.04.2018
07:31:51
У меня так же я думал это нормальное повежение
У меня чисто апишка
Запрос шлется и просто будто ожидает чего то и потом только доходит до экшна

Lavrushchik
06.04.2018
09:20:04
народ, вопрос.
есть capistrano и ckeditor в проекте.
при редеплое upload-папка с файлами, залитые с помощью ckeditor'а остаются в папке предыдущего релиза.
как бы ручками можно перенести в текущий деплой эту папку, но это не тру.
соотвесна, можно ли как-то этот вопрос "объяснить" в инструкциях капистрано? ну или в крайнем случае, на самом серваке

Смерть
06.04.2018
09:20:29

Lavrushchik
06.04.2018
09:21:09
понял, почитаю доку, спасибо

Богдан
06.04.2018
09:27:54
Господа, а не подскажите как правильно сделать что бы получить часть от хеша, например есть
`user = { name: '0', email: '1', password: '2' }
`
а нужно плучить только { name: '0', email: '1'} ?

Sergii
06.04.2018
09:29:19
user.slice :name, :email
=> {:name=>"0", :email=>"1"}

Богдан
06.04.2018
09:30:27

Sergii
06.04.2018
09:31:26
есть еще какие-то настройки фильтрации, что бы ненужные данные не светились в логах

Pavel
06.04.2018
09:34:32

Darth
06.04.2018
09:35:00
Руби

Sergii
06.04.2018
09:35:23
рельсы, а надо чистый руби?

Василий
06.04.2018
09:35:36
https://blog.bigbinary.com/2018/02/06/ruby-2-5-added-hash-slice-method