Size: a a a

Ruby, Rails, Hanami | dry-rb

2020 October 15

RP

Roman Patkin in Ruby, Rails, Hanami | dry-rb
M A
Окей, есть объект, у него есть массив вложенных объектов у этих обектов есть тоже массивы вложенных объектов.
Мне все объекты валидировать поштучно?
А куда мне написать валидации которые отвечают за форму в целом, наример все объекты валидные, но внутри формы не уникальные например.
а почему бы не сделать поле на этот объект типа optional(:obj)
а потом
rule(:obj) do
  if value._destroy?
    все окей
  else
    Вызываем валидацию на этот объект
  end
end
источник

E

EternalKnight in Ruby, Rails, Hanami | dry-rb
просто создал новый проект и почему то ошибка
источник

MA

M A in Ruby, Rails, Hanami | dry-rb
Roman Patkin
а почему бы не сделать поле на этот объект типа optional(:obj)
а потом
rule(:obj) do
  if value._destroy?
    все окей
  else
    Вызываем валидацию на этот объект
  end
end
вот у меня так и сделано, но там rule этих на 100 строк.
интересуюсь насколько это плохо и страшно?
источник

RP

Roman Patkin in Ruby, Rails, Hanami | dry-rb
Roman Patkin
а почему бы не сделать поле на этот объект типа optional(:obj)
а потом
rule(:obj) do
  if value._destroy?
    все окей
  else
    Вызываем валидацию на этот объект
  end
end
а валидация уже в другой схеме
источник

E

EternalKnight in Ruby, Rails, Hanami | dry-rb
EternalKnight
Помогите пожалуйста: Could not find gem 'sqlite3 (~> 1.4) x64-mingw32' in any of the gem sources listed in your Gemfile.
Run bundle install to install missing gems. скачивал RoR с помощью gem,
помогите пожалуйста
источник

AD

Anton Davydov in Ruby, Rails, Hanami | dry-rb
M A
Окей, есть объект, у него есть массив вложенных объектов у этих обектов есть тоже массивы вложенных объектов.
Мне все объекты валидировать поштучно?
А куда мне написать валидации которые отвечают за форму в целом, наример все объекты валидные, но внутри формы не уникальные например.
Зачем? Если у них строгая структура, то просто делаешь схему в которой описываешь список схем
источник

E

EternalKnight in Ruby, Rails, Hanami | dry-rb
*Меня игнорируют*
источник

SS

Sergii Serogin in Ruby, Rails, Hanami | dry-rb
EternalKnight
помогите пожалуйста
https://github.com/rails/rails/issues/38626 первая же ссылка в гугле
источник

SS

Sergii Serogin in Ruby, Rails, Hanami | dry-rb
да
источник

AD

Anton Davydov in Ruby, Rails, Hanami | dry-rb
Ты же понимаешь, что у тебя проблема не с валидациями, а с тем, что слишком много логики и условий в одном месте и теперь тебе сложно это натянуть на существующие решения?
источник

E

EternalKnight in Ruby, Rails, Hanami | dry-rb
источник

MA

M A in Ruby, Rails, Hanami | dry-rb
Anton Davydov
Зачем? Если у них строгая структура, то просто делаешь схему в которой описываешь список схем
При удалении вложенного объекта нужен только ID остальные свойства не нужны и мне в API соответсвенно их не передают, но если объект надо создать\отредактировать, то внутри этого объекта нужно + 20 дополнительных полей.
Отсюда варианта 2, заставить всех присылать мне в API все поля независимо от того нужно только удалить объект или нет.
Писать кастомне rule которые скипают валидации остальных полей если есть _Destroy: "1"
источник

AD

Anton Davydov in Ruby, Rails, Hanami | dry-rb
M A
При удалении вложенного объекта нужен только ID остальные свойства не нужны и мне в API соответсвенно их не передают, но если объект надо создать\отредактировать, то внутри этого объекта нужно + 20 дополнительных полей.
Отсюда варианта 2, заставить всех присылать мне в API все поля независимо от того нужно только удалить объект или нет.
Писать кастомне rule которые скипают валидации остальных полей если есть _Destroy: "1"
Ну смотри, это уже две разных операции
источник

AD

Anton Davydov in Ruby, Rails, Hanami | dry-rb
Даже три, если быть честным
источник

MA

M A in Ruby, Rails, Hanami | dry-rb
как вариант я вижу еще внутри кастомных rule дергать другие контракты и передавать туда объекты
источник

RP

Roman Patkin in Ruby, Rails, Hanami | dry-rb
M A
как вариант я вижу еще внутри кастомных rule дергать другие контракты и передавать туда объекты
я это выше и предложил
источник

RP

Roman Patkin in Ruby, Rails, Hanami | dry-rb
в таком случае у тебя будут отдельные контракты на каждый объект
источник

MA

M A in Ruby, Rails, Hanami | dry-rb
Roman Patkin
я это выше и предложил
Да, спасибо. Интересно послушать Антона еще про проблемы
источник

AD

Anton Davydov in Ruby, Rails, Hanami | dry-rb
Anton Davydov
Даже три, если быть честным
Те ты хочешь одну ручку, которая тебе CUD сделает
источник

AD

Anton Davydov in Ruby, Rails, Hanami | dry-rb
Вместо разделения логики на три разных операции. Это тоже рабочий вариант, просто вместо кучи кода будешь бороться с библиотеками
источник