Size: a a a

Saint P Ruby Community

2020 November 12

IT

Ivan Takarlikov in Saint P Ruby Community
всем спасибо за участие
источник
2020 November 13

TL

Tab Loid in Saint P Ruby Community
Vsevolod Avramov
Рельсовый fields_for создаёт вот такую структуру для nested attributes:
https://github.com/rails/rails/blob/master/activerecord/lib/active_record/nested_attributes.rb#L446
{
 '1' => { id: '1', name: 'Peter' },
 '2' => { name: 'John' },
 '3' => { id: '2', _destroy: true }
}
С dry-schema такого не делал, но в reform для этого есть модуль предварительно преобразующий nested-атрибуты в нормальный вид
источник

TL

Tab Loid in Saint P Ruby Community
источник

w

wi11son in Saint P Ruby Community
schema = Dry::Schema.Params do
 required(:users_attributes).array(:hash) do
   required(:id).filled(:int?)
   required(:name).filled(:string)
   optional(:_destroy).filled(:bool)
 end
 before(:key_coercer) do |res|
   res.to_h[:users_attributes] = res.to_h[:users_attributes].values
 end
end
n = {:users_attributes=>{"1"=>{:id=>"1", :name=>"Peter"}, "2"=>{:name=>"John"}, "3"=>{:id=>"2", :_destroy=>true}}}
schema.call(n)
вот так у меня сработало

но нужно понимать, что оно мутирует n
источник

VA

Vsevolod Avramov in Saint P Ruby Community
wi11son
schema = Dry::Schema.Params do
 required(:users_attributes).array(:hash) do
   required(:id).filled(:int?)
   required(:name).filled(:string)
   optional(:_destroy).filled(:bool)
 end
 before(:key_coercer) do |res|
   res.to_h[:users_attributes] = res.to_h[:users_attributes].values
 end
end
n = {:users_attributes=>{"1"=>{:id=>"1", :name=>"Peter"}, "2"=>{:name=>"John"}, "3"=>{:id=>"2", :_destroy=>true}}}
schema.call(n)
вот так у меня сработало

но нужно понимать, что оно мутирует n
Ого. Я так и сделал вчера :))) прям как будто мой код. Только в before key coercer надо работать со строками, а не с символами.

before(:key_coercer) do |result|
 result.replace(
   result.to_h.tap do |h|
     h['entry_fees_attributes'] = h['entry_fees_attributes'].values
   end
 )
end
источник

AK

Anton Kotenko in Saint P Ruby Community
источник

ЕЗ

Евгений Зубаиров... in Saint P Ruby Community
источник

w

wi11son in Saint P Ruby Community
вдруг кто не видел
источник

r

rekero in Saint P Ruby Community
источник

A

Anton in Saint P Ruby Community
если считать что картинки в обратном хронологическом порядке, то совсем неплохо получилось
источник

i

ikzekly in Saint P Ruby Community
wi11son
вдруг кто не видел
я порвался
источник

AD

Anton Davydov in Saint P Ruby Community
там есть еще кусок из доклада (надеюсь меня не забанят, берегите легкие, все плохо)
источник

AK

Artem Krivonozhko in Saint P Ruby Community
Anton Davydov
там есть еще кусок из доклада (надеюсь меня не забанят, берегите легкие, все плохо)
Знаю, что буду делать во время твоего доклада
источник

AK

Artem Krivonozhko in Saint P Ruby Community
А у всех чёрный экран?
источник

AD

Anton Davydov in Saint P Ruby Community
наслаждаться охмеленной камбучей?
источник

AK

Artem Krivonozhko in Saint P Ruby Community
Artem Krivonozhko
А у всех чёрный экран?
А не, у меня висела трансляция(
источник

A

Anton in Saint P Ruby Community
народ а где руби рашу смотреть?
источник

.

./sh in Saint P Ruby Community
Anton
народ а где руби рашу смотреть?
источник

A

Anton in Saint P Ruby Community
спс
источник

DS

Dmitriy Strukov in Saint P Ruby Community
Anton Davydov
там есть еще кусок из доклада (надеюсь меня не забанят, берегите легкие, все плохо)
Ожидайте товарища начальника с Гидры, за вами выехали :)))
источник