如何定义 Rails 环境特定 class?

How to define a Rails environment-specific class?

我在 Rails 中有一个 class 正在使用不会在生产环境中定义的工厂女孩​​,所以我只需要加载 class 如果环境不是生产。我尝试使用如下所示的简单 return 语句,但它 return 是 Invalid return (SyntaxError):

return if Rails.env.production?


附加信息

我正在使用 mail_view gem。这是完整的错误跟踪(只打印了 1 行):

mail_preview.rb: app/mailers/mail_preview.rb:1: Invalid return (SyntaxError)

这是文件的相关部分:

return if Rails.env.production?

class MailPreview < MailView
  include FactoryGirl::Syntax::Methods

  # ...
end

我认为你可以做到:

unless Rails.env.production?
  class MailPreview < MailView
    include FactoryGirl::Syntax::Methods
    # ...
  end
end

不过在您的代码中您需要检查常量是否存在。我宁愿让它保持打开状态,并在您的控制器或模型中进行检查,或者在任何生产环境中使用此 class.