[英]What's the best way to conditionally override ActiveRecord's deletion mechanism?
[英]What's the best way to protect certain records from modification or deletion?
我有三种模型:用户,订阅和渠道。
用户:
has_many :channels, :through => :subscriptions
订阅:
belongs_to :user
belongs_to :channel
渠道
belongs_to :user
has_many :users, :through => :subscriptions
我有一个after_create
方法,该方法会自动将频道的创建用户添加到带有其他一些必要属性集的订阅表中。 我应如何以及在何处添加防止删除或修改与该频道的用户相对应的订阅记录的信息?
由于可以从不同控制器中的几个不同操作中更新我的模型,因此我需要在模型层中进行此操作,但是我不确定应该使用哪个回调。 我需要写验证还是需要连接到before_destroy
, after_destroy
或什么?
Rails 3.1.3
如果除非满足某些条件,否则需要防止删除或修改Subscription
记录,则可以将这些保护放在Subscription
模型的before_destroy
和before_save
挂钩中。 如果您修改和删除的条件相同,那么它们都可以指向相同的方法。 否则,您可以指定before_destroy :validate_destroy_privileges
和before_save validate_save_privileges
,或者对所检查内容有意义的任何内容。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.