簡體   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