如何使类对象在rails中全局可用



这似乎是一个足够简单的问题,但我似乎在SO上找不到答案。

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

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

例如,在DB中创建帐户时,我想要一个before_create钩子来利用这个Stripe类来创建相应的支付帐户。必须多次设置API密钥似乎是不对的。

我试着把它做成$stripe全局,但有人警告我不要使用它。

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

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

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

我在应用程序下有一个文件夹类,在其中我为每个类放置了一个单独的文件,在您的例子中称为stripe.rb

通过这种方式,您可以在不做任何额外操作的情况下使用该类。需要

相关内容

  • 没有找到相关文章

最新更新