我正在应用程序中使用restful_身份验证.我正在使用rake任务创建一组默认用户,但每次运行任务时,都会发送一封激活邮箱,因为与我的用户模型关联的观察者.我在创建用户时设置激活字段,因此无需激活.

有谁知道在运行rake任务时绕过观察者的简单方法,这样在我保存用户时就不会发送邮箱了?

谢谢

推荐答案

你可以向你的用户模型中添加一个访问器,比如"跳过激活",它不需要保存,但会在整个会话中持续存在,然后在observer中判断标志.差不多

class User
  attr_accessor :skip_activation
  #whatever
end

然后,在《观察家》中:

def after_save(user)
  return if user.skip_activation
  #rest of stuff to send email
end

Ruby-on-rails相关问答推荐

rails:如何在表单验证后使用涡轮刷新列表

使用turbo流的部分渲染在rails 7中不起作用.

为什么没有生成命名空间路由?

创建大哈希的 Ruby 方法

如何配置我的 Rails 应用程序(使用 Puma)以通过 HTTPS 提供服务?

刺激不添加侦听器以搜索表单输入

如何在生成的 HTML 本身中显示部分名称

Rails 7 共享刺激控制器功能

Rails 模型方法 self.与普通

如何为 Rails SimpleForm Select 框设置默认 Select 值

在 Rails 4 中检测用户代理 - 读取 HTTP 标头

Rails:文件路径

如何将字符串转换为类方法?

升级到 ruby​​ 1.9.2 后奇怪的无法要求配置/ bootstrap

Rails 引擎中的迁移?

Rails 3.1 Sprockets 需要指令 - 有没有办法排除特定文件?

登录delay_job?

过滤器在渲染之前但在控制器之后执行?

如何一次显示一条 Ruby on Rails 表单验证错误消息?

向 Rails 模型添加外键