繁体   English   中英

如何在rails中全局使用class \\ object?

[英]How to make class\object available globally in rails?

看起来像一个简单的问题,但我似乎无法在SO上找到答案。

我正在尝试将Stripe实现到应用程序中。 Stripe是一个ruby类,它有一个api_key方法来设置密钥。

在我的Rails 4应用程序中,我需要将键定义为Stripe.api_key = mykey ,以便可以从所有控制器和模型访问Stripe

例如,在DB中创建帐户后,我想要一个before_create挂钩来利用此Stripe类来创建相应的支付帐户。 不止一次设置API密钥似乎是不对的。

我已经尝试将其设为$ stripe全球但我被警告不要使用它。

我在app下有一个文件夹类,其中我为每个类放了一个单独的文件,在你的情况下叫做stripe.rb

这样您就可以在不执行任何其他要求的情况下使用该类

我通常将这些类放在lib文件夹中。 您需要确保您的文件名与snakecase中的类名相同。

第一次使用Stripe常量时,执行rails constant_missing方法。 它在您的一个自动加载路径中搜索名为stripe.rb的文件。 如果文件不存在,则抛出常量缺失异常,否则返回此文件类中声明的内容(如果其名称与常量匹配)。

如果你想在服务器启动时对这个类执行一些代码,你需要将它放在config / initializers文件夹中(不是类本身,只是调用它的代码)。 在加载正确的环境后立即执行此文件夹中的所有文件(此处不需要命名约定)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM