【发布时间】:2013-10-28 18:23:52
【问题描述】:
是否有可能知道模型是否正在由 rake 任务保存/创建/更新?例如,如果模型由 rake 任务保存,我需要禁用 before_save 回调。谢谢!
【问题讨论】:
标签: ruby-on-rails activerecord mongoid rake
是否有可能知道模型是否正在由 rake 任务保存/创建/更新?例如,如果模型由 rake 任务保存,我需要禁用 before_save 回调。谢谢!
【问题讨论】:
标签: ruby-on-rails activerecord mongoid rake
如果您想跳过任务中的所有验证,您可以possibly use this。
如果您想有条件地运行验证 you can use this 并在模型上设置一些表明应该跳过验证的值。
例如,模型上有一个 validate 字段,用于存储是否应验证该记录。
validates :user_id, presence: true, unless: 'validate == false'
这有点小题大做。
如果您要问是否有一些干净的方法可以让模型中的代码知道从哪里调用它......不,我不知道。使用条件验证或提供的方法之一跳过特殊情况的验证。
【讨论】:
validate 属性,然后在 before_save 中检查它的存在并在之后将其删除,因为它不需要持久化。