
Ilya
12.03.2017
07:37:51
relation

Alex
12.03.2017
07:37:51
список camps конкретного юзера
оно должно быть eager load если join

Ilya
12.03.2017
07:38:27
ну вот, а чел вызывает на Relation метод name

Google

Ilya
12.03.2017
07:38:35
вот у него и не работает

Alex
12.03.2017
07:38:46
главное от N+1 застраховали
Danny мы тут за тебя все решили, забирай.

Danny
12.03.2017
07:41:06
Спасибо) иду пытаться сделать
разобрался, все работает)
Спасибо большое)

Dima
12.03.2017
12:15:37
А вы любите эйчаров?)))
Нет. Потому что постоянно сталкиваемся с полной некомпетентностью даже не в технических вопросах.

Ilya
12.03.2017
12:16:50
ну есть нормальные) но вообще HR жуткие лицемеры

Oleg
12.03.2017
12:17:16
Профессиональная деформация же

Ilya
12.03.2017
12:17:31
это не деформация, это мудачество

kolas
12.03.2017
12:17:51
а зачем любить/нелюбить их, ваще пофиг, работа и работа

Ilya
12.03.2017
12:17:52
можно нормально обо всем говорить

Oleg
12.03.2017
12:17:57
Бывает и так

Ilya
12.03.2017
12:18:50
а то когда человек нужен, ему жопу лижут и глазки строят
а когда нет - начинается какой-то неадекватный ад

Google

Alexander
12.03.2017
12:19:30

Ilya
12.03.2017
12:22:18
хз, может это просто на контрасте
хотя бы с теми же программистами

Alexander
12.03.2017
12:26:21

Sergey
12.03.2017
21:55:26
Оо

енот
13.03.2017
04:23:19
подскажите, в ruby\ror можно как-то вытащить имя пользователя из basic authorization apache?

Alexander
13.03.2017
04:27:44
Вроде бы где то в params должно быть, но это не точно

енот
13.03.2017
04:35:29
а passenger норм?

Evgeniy
13.03.2017
04:41:08

Alexander
13.03.2017
06:14:10

Evgeniy
13.03.2017
06:17:02
я не в том контексте вопрос воспринял ?

Alexander
13.03.2017
06:18:09
А зачем вообще апач? puma + nginx и всего делов

енот
13.03.2017
06:18:21
затем что он умеет в ldap авторизацию

Alexander
13.03.2017
06:20:47
https://github.com/plataformatec/devise/wiki/How-To:-Authenticate-via-LDAP

енот
13.03.2017
06:41:05
спасибо

Maksim
13.03.2017
07:32:52
1. Подскажите, как часто вы используете presenter ? Или вообще никогда ?
2. Есть ли смысл применять Serialization вместо jbuilder ?

Alex
13.03.2017
07:33:42
2. Да

Ilya
13.03.2017
07:35:40
1. Часто

Ivan
13.03.2017
07:37:55
1. было дело

Google

Maksim
13.03.2017
07:44:19
@ilya_dev Я правильно понимаю это для выноса ui логики из контроллера ?

Ilya
13.03.2017
07:44:36
из модели
в контроллере такой логики быть не должно по определению.

Maksim
13.03.2017
07:55:37
Хм, например контроллер:
def index
@posts = Post.all
@authors = Author.all
@post_count = Post.count
end

Ilya
13.03.2017
07:56:19
и что?)

Felix
13.03.2017
07:57:17

Maksim
13.03.2017
07:58:44
Хм, вроде как чуваки говорят именно такая логика и должна быть перенесена в presenter.

Ilya
13.03.2017
07:59:49
нет
ты плохо читал
или это неправильные советы

Maksim
13.03.2017
08:01:12
clas IndexPresenter
def posts
Post.all
end
def authors
Author.all
end
end
Соответственно в контроллере:
def index
@presenter = IndexPresenter.new
end
Что позволяет в шаблоне сделать
@presenter.posts
@presenter.authors

Alex
13.03.2017
08:02:13
на правах тупой шутки - рубист спит, гем работает.

Ilya
13.03.2017
08:04:16
имеет смысл делать отдельные методы типа posts, authors только в случае если ты хочешь мемоизировать:
def posts
@posts ||= Post.all
end
в остальных случаях достаточно просто в отдельный метод вынести, если тебе нужно соблюсти DRY

Maksim
13.03.2017
08:04:54
понятно

Ilya
13.03.2017
08:05:57
def load_smth
@posts = Post.all
@authors = Author.all
end
def index
load_smth
end

Maksim
13.03.2017
08:06:08
угу

Ilya
13.03.2017
08:06:31
это гораздо читабельнее, чем то, что тебе предложили как презентер
классический пример использования презентера:
у тебя есть пользователь с именем, фамилией, отчеством, датой рождения и т.д. и тебе нужно вывести что-то типа
"Иванов И. И., 1990 г.р."
и ты делаешь презентер для этого
потому что пихать в модель это не совсем правильно, поскольку тебе надо работать с уже загружеными данными

Google

Ilya
13.03.2017
08:11:42
а потом тебе еще и нужно выводить к примеру формат
Иванов Иван, 05.05.90
ты добавбляешь метод в презентер и кайфуешь)

Admin
ERROR: S client not available

Alexander
13.03.2017
08:13:50

Alex
13.03.2017
08:13:58
они самые.

Ilya
13.03.2017
08:18:11
ну не совсем, я сейчас не только про view, к примеру, нужно такую штуку положить в csv
view objecs это частный случай

Alex
13.03.2017
08:25:09
а кто сказал что view objects относятся только к html?

Alexander
13.03.2017
08:25:36

Ilya
13.03.2017
08:27:59
короче, view objects это рельсовое название паттерна Presenter

Maksim
13.03.2017
08:34:13

Ilya
13.03.2017
08:37:02
декоратор и презентер очень похожи, но декоратор это скорее когда ты добавляешь доп функциональность к объекту, это не обязательно связано с его представлением.

Alexander
13.03.2017
08:43:56

Ilya
13.03.2017
08:44:43
mvp это из джава-мира же, не?

Alexander
13.03.2017
10:12:44
тут был спам снова(

Oleg
13.03.2017
17:45:29
А есть в руби OpenStruct, но чтобы падал при попытке чтения несуществующего поля? Но при этом также можно было бы в конструктор хеш без проблем

I
13.03.2017
17:45:53
переопредели method_missing

Oleg
13.03.2017
17:46:18
То есть таки своё делать...
Ок, спасибо

I
13.03.2017
17:46:29
но это такое говняненькое решение, скажу я )

Alexander
13.03.2017
17:46:42

Google

Alexander
13.03.2017
17:47:15
(ну или, внезапно, класс)

Oleg
13.03.2017
17:48:00
Хочу как в опенструкте генерить геттеры-сеттеры просто отправив в конструктор хеш

Ilya
13.03.2017
17:48:27
так OpenStruct не падает же, не?

Oleg
13.03.2017
17:48:34
Не падает
А хотелось бы

Ilya
13.03.2017
17:48:39
person = OpenStruct.new('name' => 'John Smith', 'age' => 70)
=> #<OpenStruct name="John Smith", age=70>
[14] pry(main)> person[:age]
=> 70
[15] pry(main)> person[:age1]
=> nil
ааа
сори, туплю, только проснулся)

I
13.03.2017
17:49:33
а, нужно чтобы падал
черт
тогда Struct, как советовали выше