我有三种模式:用户,订阅和频道。
用户:
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
答案 0 :(得分:0)
如果您需要阻止删除或修改Subscription
记录,除非符合某些条件,我会将这些保护措施放入Subscription
模型的before_destroy
和{{1} }钩子。如果您的修改和删除标准相同,则它们都可以指向相同的方法;否则你可以指定before_save
和before_destroy :validate_destroy_privileges
,或任何对你正在检查的内容有意义的内容。