【问题标题】:Initializing object within devolopment.rb envirorment using gem within rails mountable engine使用 rails 可安装引擎中的 gem 初始化 devlopment.rb 环境中的对象
【发布时间】:2016-05-03 17:30:56
【问题描述】:

完全迷路了。

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

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

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

wefarm/config/environments/development.rb

应用特定信息

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

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

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

任何帮助都会非常有帮助。

附言。客户端ID和秘密我们刚刚测试的信息

【问题讨论】:

    标签: ruby-on-rails rails-engines


    【解决方案1】:

    在 Rails 4 引擎中,在 secrets.yml 中定义应用特定信息

    1. 根据环境指定秘密密钥和ID将解决密钥的环境相关配置。 例子 : 发展:

      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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多