Size: a a a

Saint P Ruby Community

2020 August 06

ZN

Zamira Norova in Saint P Ruby Community
Pavel Gabriel
такое может?
Если по этому примеру, предположим есть некий "вес" страниц и "вес" книги. Мне нужно провалидировать что вес книги равен сумме весов страниц
источник

ZN

Zamira Norova in Saint P Ruby Community
При этом у книги accepts_nested_attributes_for :pages
источник

ZN

Zamira Norova in Saint P Ruby Community
Вот они переданы как нестед атрибуты. Они тоже не созданы еще как и сама книга. При валидации книги надо как-то достучаться до вложенных ассоциаций
источник

PG

Pavel Gabriel in Saint P Ruby Community
я могу ошибаться. но объекты будут созданы при передаче атрибутов. почему они не созданы?
источник

PG

Pavel Gabriel in Saint P Ruby Community
они могут быть не сохранены в БД
источник

PG

Pavel Gabriel in Saint P Ruby Community
но в пямяти, будут созданы.
источник

ZN

Zamira Norova in Saint P Ruby Community
Pavel Gabriel
но в пямяти, будут созданы.
Пока book не создан, у него нет айди. Соответственно у pages что в памяти, тоже нет book_id
источник

PG

Pavel Gabriel in Saint P Ruby Community
и в БД они тоже будут созданы
источник

PG

Pavel Gabriel in Saint P Ruby Community
я понял теперь в чем проблема 🙂
источник

PG

Pavel Gabriel in Saint P Ruby Community
вроде бы
источник

ZN

Zamira Norova in Saint P Ruby Community
Pavel Gabriel
я понял теперь в чем проблема 🙂
А решение какое? 🤪
источник

PG

Pavel Gabriel in Saint P Ruby Community
1. есть странное решение. явно не подойдет 🙂
источник

PG

Pavel Gabriel in Saint P Ruby Community
это использовать валидацию отдельно от моделей 😄
источник

PG

Pavel Gabriel in Saint P Ruby Community
я использовал dry.validation и что-то типа такого
источник

PG

Pavel Gabriel in Saint P Ruby Community
но это такой... странный путь.
источник

AD

Anton Davydov in Saint P Ruby Community
Pavel Gabriel
но это такой... странный путь.
скорее не рельсовый
источник

ZN

Zamira Norova in Saint P Ruby Community
Ну dry в принципе нет в проекте, к сожалению.
А вообще меня изначально попросили сделать эту валидацию чисто на фронте яваскриптом, а меня это не устроило 😬
источник

PG

Pavel Gabriel in Saint P Ruby Community
2. так может объекты в памяти создаются все же и валидация пройдет по ассоциациям?
источник

PG

Pavel Gabriel in Saint P Ruby Community
😄
источник

ZN

Zamira Norova in Saint P Ruby Community
Pavel Gabriel
2. так может объекты в памяти создаются все же и валидация пройдет по ассоциациям?
Проверяла. Не проходит
источник