【发布时间】:2015-08-10 19:18:40
【问题描述】:
我在 Rails 中有一个使用工厂女孩的类,它不会在生产环境中定义,所以我只需要在环境不是生产环境时加载该类。我尝试使用如下所示的简单 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
【问题讨论】:
-
显示完整的错误堆栈。
-
@ArupRakshit 我已经更新了问题。
-
@ChristianDiLorenzo 您可以尝试将文件放在其他位置,然后将 require 语句放在条件中。或者在类中只包含 FactoryGirl(在初始化时)有效。例如` self.class.send(:include, FactoryGirl::Syntax::Methods) 除非 Rails.env.production?`
-
@tgf 我认为你的建议是要走的路。我正在将此更改部署到临时服务器,但它很快就崩溃了。谢天谢地,暂存服务器 :-)。
-
您的登台服务器是否也在使用生产 Rails 环境?一些团队定义了特定的暂存环境。
标签: ruby-on-rails ruby class production-environment