Я хотел бы предотвратить удаление объекта, если он связан с другим объектом - PullRequest
0 голосов
/ 26 декабря 2018

Я бы хотел предотвратить удаление сущности, если она связана с другой сущностью в пользовательском интерфейсе.

class foo 
  belongs_to bar

class bar

При получении / foos (то есть списка объектов Foo) мы хотели быкаким-то образом показывать количество баров для каждого foo, пользовательский интерфейс может использовать это как указание, чтобы избежать удаления для сущностей баров больше нуля

Ответы [ 2 ]

0 голосов
/ 26 декабря 2018

Чтобы предотвратить удаление одного объекта, который связан с другим объектом, можно сделать, используя soft delete .В рельсах это может быть достигнуто с помощью acts_as_paranoid gem .

https://github.com/ActsAsParanoid/acts_as_paranoid

0 голосов
/ 26 декабря 2018

Я думаю, что ваш пример неверен, вы пытаетесь сказать следующее:

class foo < ApplicationRecord
  has_many :bars
end

class bar < ApplicationRecord
  belongs_to :foo
end

Если это так, то вам нужно реализовать счетчик кэша .

Ваш код станет:

class bar < ApplicationRecord
  belongs_to :foo, counter_cache: true
end

И вы должны добавить к foo столбец с именем bars_count;

Теперь, когда вы создаетеновый foo, он автоматически увеличится bars_count;и, конечно, уменьшите его при удалении foo.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...