如果一个实体与用户界面中的另一个实体相关联,我想阻止删除该实体。
class foo belongs_to bar class bar
在获取/foos(即foo对象的列表)时,我们希望以某种方式显示每个foo的条数,用户界面可以将其用作指示,以避免删除大于零的条实体
g6ll5ycj1#
为了防止删除与另一实体关联的一个实体,可以使用软删除。在rails中,可以使用acts\u as\u paranoid gem来实现。https://github.com/actsasparanoid/acts_as_paranoid
3duebb1j2#
我认为你的例子是错误的,你想说的是:
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时,减少它。
foo
bars_count
2条答案
按热度按时间g6ll5ycj1#
为了防止删除与另一实体关联的一个实体,可以使用软删除。在rails中,可以使用acts\u as\u paranoid gem来实现。
https://github.com/actsasparanoid/acts_as_paranoid
3duebb1j2#
我认为你的例子是错误的,你想说的是:
如果是这种情况,则需要实现计数器缓存。
您的代码将变成:
你应该加上
foo
一个名为bars_count
;现在,无论何时创建新的foo,它都会自动增加
bars_count
; 当然,当你删除一个foo时,减少它。