使用 rails 可安装引擎中的 gem 在 devolopment.rb 环境中初始化对象

Initializing object within devolopment.rb envirorment using gem within rails mountable engine

彻底迷失。

我正在学习这个示例应用教程 https://www.wepay.com/developer/resources/wefarm-tutorial

这似乎是一个简单的教程,只是我在 rails 引擎中构建它。我目前正在尝试按照教程操作并初始化新对象。

初始化一个新的 WePay 对象。将这些变量添加到 config/development.rb:

wefarm/配置/环境/development.rb

应用特定信息

CLIENT_ID = 32636
CLIENT_SECRET = "180c800c62"
USE_STAGE = true
WEPAY = WePay.new(CLIENT_ID, CLIENT_SECRET, USE_STAGE)

我认为我遇到的问题是 gem 与用户和应用程序的其余部分一起在我的核心引擎中,我将这些代码行添加到空 shell 应用程序。我如何确保我的引擎在开发中使用它我还假设我会在准备生产时再次遇到这个问题。

在另一个问题中,用户指定我将这段代码放入错误的区域,如果我使用的是引擎,它应该放在初始化文件夹中,但在文档中,他们只是指定将代码放在 config/environments 文件,所以 where/how 我确实将其转换为引擎。如果它进入初始化程序文件夹,我将如何使该文件只包含指定的代码?

任何帮助都会非常有用。

Ps。 client Id和secret我们刚刚测试的信息

在Rails4引擎中,在secrets.yml

中定义app具体信息
  1. 根据环境指定secret keys和ids可以解决keys的环境相关配置。 例子 : 发展:

    CLIENT_ID: 123

  2. 使引擎可配置

config/initializer/wefarm.rb

中的例子
Weform.CLIENT_ID =  Rails.application.secrets.CLIENT_ID 
  1. 在lib/engine.rb(引擎)

    mattr_accessor :CLIENT_ID

现在您可以在引擎中以 WeForm.CLIENT_ID

访问 client_id

更多信息Rails Engine