重写Devise Controller时无法调用其他类?

时间:2015-01-13 15:26:57

标签: ruby-on-rails devise

我已覆盖Devise' RegistrationsController,以便在用户注册时发送欢迎电子邮件。尝试在发送之前使用Roadie对电子邮件进行内联样式修改,但在调用Roadie的行上显示uninitialized constant Users::RegistrationsController::Roadie

app/controllers/users/registrations_controller.rb

class Users::RegistrationsController < Devise::RegistrationsController
  def create
    # Call the original Devise Create

    super
    if resource.save
      ## New version with inline css styling
      ## Things done in the hacky way
      email = UserNotifier.send_signup_email(resource)
      doc = Roadie::Document.new email.body.to_s
      doc.add_css(Rails.application.assets["email"].to_s)
      email.body = doc.transform

      email.deliver

  ..

因此,当我在上面调用Roadie时,而不是gem中的Roadie类,它会尝试调用Users::RegistrationsController::Roadie。使用bundle show进行检查时安装了Gem。一直在尝试查看设计代码,看看是否有类似的挖掘(我不确定在控制器中确实存在这样的事情)但是也没有运气。我想这应该是超级简单的,所以希望有人可以提供帮助!

当然..上面的代码在控制台中运行。 :)

谢谢!

0 个答案:

没有答案