@rubylang

Страница 113 из 1684
Andrey
17.06.2016
10:31:43
кто подскажет способ переопределить метод контроллера, который находиться в геме? https://github.com/tryshoppe/shoppe/blob/master/app/controllers/shoppe/products_controller.rb вот контроллер, нужно safe_params переопределить

кроме как перетащить весь контроллер к себе конечно)

justed
17.06.2016
10:35:17
манки патчинг так не работает разве?

в правильном месте открыть класс и переопределить метод

Google
mardybm
17.06.2016
10:37:07
https://rubyplus.com/articles/2711-Redefining-a-Private-Method-in-Ruby

aidden
17.06.2016
13:56:57
здравствуйте

меня yopp сюда прогнал

у меня два вопроса в связи с https://ruby.leprosorium.ru/comments/2094736 :

1. как мне копировать объект из массива в другой массив, чтобы это был референс на новый объект, а не на оригинальный

v
17.06.2016
14:01:48
в связи с https://leprosorium.ru/login/?

ну я даже не знаю

логин вычурный какой-то

aidden
17.06.2016
14:02:43
простите, я думал, что это лепрочатик :)

суть вопроса такова:

я пробегаю по массиву хэшей, проверяю отдельные пары

если значение не проходит валидацию, я копирую весь хэш в другой массив и обнуляю это значение в оригинальном

обнуляю = nil

Google
aidden
17.06.2016
14:05:29
как следствие, обнуляются оба

вот что мне ответили:

aidden, потому что в руби всё указатель (на объект). Ты добавляешь в @baduser элемент массива который указывает на тот–же объект на который указывает переменная hash. Внесение изменений как через @baduser[][] так и через hash приведут к изменению одного объекта. Более того, удалять значение из хешей пока ты его перебираешь, так себе идея на самом деле.

Антон
17.06.2016
14:06:06
а в чем вопрос?

mardybm
17.06.2016
14:07:20
тут метод dup или clone напрашивается

Aldar
17.06.2016
14:10:14
лучше обнулять через индекс

a[0] = nil

Антон
17.06.2016
14:10:40
лучше определить ошибку проектирования :) чтобы не было таких странных задач

aidden
17.06.2016
14:15:04
ну я догадываюсь, что изъян в логике :)

смотрите: у меня есть массив хэшей, каждый хэш - это атрибут и его значение пользователя в Active Directory

типа {:username => "user1", :first_name => "John"}

я валидирую эти значения методом, который определяет, можно ли такую херню в AD помещать (длина, спецсимволы и всё такое)

если нельзя, я такого пользователя хочу поместить в массив @badusers, а "плохое значение" обнулить в оригинальном

чтобы при экспорте в AD те атрибуты, которые nil, не трогать

Антон
17.06.2016
14:18:30
ADUser.new(:username => "user1", "first_name => "John").permited_attributes

validate :username, :foo => true, :baz => false

итп

хеши какие-то

с ними же невозможно рабоать по хорошему

а тут каждый юзверь будет новым объектом - ништяк

Google
aidden
17.06.2016
14:21:08
мне HR выдал CSV с пользователями

просят обновить AD на основании этого csv

я его отпарсил и в массив хэшей засунул, чтобы потом валидировать :)

Антон
17.06.2016
14:22:12
HR выдал на ТЗ?

aidden
17.06.2016
14:22:29
на ТЗ?

Антон
17.06.2016
14:22:53
тестовое задание?

HR - агент наниматель?

Andrey
17.06.2016
14:23:08
HR выдал CSV

aidden
17.06.2016
14:23:36
да не, наш HR откуда-то берёт csv с правильной информацией о пользователях

а в AD у меня неправильная

мол

Антон
17.06.2016
14:23:55
бля какая разница

Антон
17.06.2016
14:24:07
ты устанешь валидировать каждый элемент хеша, точка

зделай нормально ногладяно include ActiveModel::Model include Virtus.model

в любой абстрактный класс и юзаешь там валидации как в AR

создай не массив хешей а массив объектов ActiveModel

aidden
17.06.2016
14:25:19
простите, я забыл сказать, что я неделю как тыжпрограммист

Антон
17.06.2016
14:25:45
а

ну тогда это чат про аниме

а чо бы на тостере не спросить сначала?

Google
mardybm
17.06.2016
14:26:57
короч используй дюп

users = [{:username => "user1", :first_name => "John"}, ...] @badusers = [] users.each do |user| if user.invalid? @badusers << user.dup user = nil end end

вот говнокод тебе набросал

aidden
17.06.2016
14:27:28
ActiveModel - это про Rails, судя по всему

Антон
17.06.2016
14:27:31
вот только у него нет юзера как объекта, и на метод invalid? ответить некому :)

yopp
17.06.2016
14:27:46
ActiveModel - это про Rails, судя по всему
я тебе уже сказал что удалять значения в процессе переборки — плохая идея

Admin
ERROR: S client not available

Антон
17.06.2016
14:27:49
active_model - самостоятельный гем имхо

yopp
17.06.2016
14:27:50
зачем ты это делаешь?

Aldar
17.06.2016
14:27:57
или клон

mardybm
17.06.2016
14:28:02
ну понятно что метод invalid? придется писать самому

aidden
17.06.2016
14:28:02
о, привет, yopp

метод у меня есть

yopp
17.06.2016
14:28:10
привет

aidden
17.06.2016
14:29:12
я удаляю потому, что по моей логике, когда я буду делать экспорт в AD, если у атрибута новое значение - nil, я не трогаю старое значение

а nil у меня те атрибуты, которые либо не присутствовали в csv, либо те, которые не прошли мою валидацию

Антон
17.06.2016
14:30:38
а вопрос в чем?

aidden
17.06.2016
14:31:08
как быть, если "удалять значения в процессе переборки — плохая идея" :)

yopp
17.06.2016
14:31:32
всё что я понял пока, это ты хочешь учётки из AD отфильровать по некоторому условию

Google
aidden
17.06.2016
14:32:18
не не, мне дали csv файл, чтобы я взял и обновил учётки в соответствии с тем, что в нём написано

yopp
17.06.2016
14:32:22
и те, которые не прошли, обновить?

так

задача сводится к двум шагам

1) сверить AD с приложеным файлом

2) всё что не прошло проверку обновить

aidden
17.06.2016
14:33:22
я не хочу атрибут в AD вот таким делать: SchrГ¶der

это фамилия из этого csv

таким образом в массиве у меня есть элемент хэша вот такой: {:sn => "SchrГ¶der"}

я натравил на него ad_valid? и он сказал, что false

и я хочу этот атрибут теперь сделать nil, чтобы когда заливалось в AD всё, не трогать оригинальное значение атрибута sn: "Schroeder"

понимаете?

yopp
17.06.2016
14:37:14
понятно

тогда да, @badass << hash.dup. и вместо hash[key] = nil лучше hash.delete key

aidden
17.06.2016
14:38:07
ура!

yopp
17.06.2016
14:38:17
правда я дальнейшей логики не понимаю :)

aidden
17.06.2016
14:40:01
потом я нахожу пользователя в AD по элементу из моего хэша :username => "sAMAccountName" и обновляю ему те атрибуты, которые в этом хэше !nil

не? :)

Страница 113 из 1684