【问题标题】:Adding Variables to config/development.rb rails engine向 config/development.rb rails 引擎添加变量
【发布时间】:2016-01-26 13:05:02
【问题描述】:

目前对配置我的应用程序感到困惑。我目前正在尝试在 config/development.rb 中初始化一个新对象

按照这个示例应用教程https://www.wepay.com/developer/resources/wefarm-tutorial

我的问题是我正在以模块化方式构建应用程序。一切都在引擎中。 wepay gem 当前安装在应用程序的核心引擎中。我对初始化新的 WePay 对象感到困惑。

我不断收到错误未初始化常量 Wepay

有人可以帮忙看看我做错了什么吗,因为我的应用程序是在引擎而不是 Monolithic 中构建的,所以我错过了一步吗?

任何想法或帮助都会很棒

【问题讨论】:

  • 你确定这不仅仅是一个错字吗? WePayWepay 不一样。
  • 另外,如果你想在引擎中初始化某些东西,你可以把它放在初始化器中——而不是/config/development.rb
  • @max 我确定这不是拼写错误的问题。
  • @max 我认为问题在于我没有将它放入引擎的初始化程序中。在 WePay 文档中,他们没有专门创建一个新文件,所以我将如何为此创建一个初始化文件。抱歉,我是个菜鸟,尤其是在处理引擎方面。

标签: ruby-on-rails rails-engines wepay


【解决方案1】:

如果您希望使用初始化程序 - 应该在 引擎已加载 - 它的位置是 config/initializers 文件夹。

http://guides.rubyonrails.org/engines.html

Rails 将需要 config/initializers 目录中的每个文件作为初始化过程的一部分 - 当您挂载引擎时,rails 还将查看引擎 config/initializers 目录。

# config/initializers/we_pay.rb
# Note that globals are not thread safe. 
$wepay = WePay::Client.new(
  ENV['WEPAY_CLIENT_ID'],
  ENV['WEPAY_CLIENT_SECRET'],
  true
)

另见:

【讨论】:

  • Rail noob here 抱歉,全局变量不是线程安全的是什么意思,在应用程序情况下,此初始化程序将用于接受付款,这是否意味着它容易受到黑客攻击?只是简单地将wepay gem从单个引擎中取出并将其运行到空的主机应用程序中会更安全吗@max谢谢您的帮助
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-09-27
  • 1970-01-01
相关资源
最近更新 更多