5

Ruby on Railsプロジェクトのすべての側面(モデル、ビュー、コントローラー)にグローバル関数を公開したいと思います。最初は、次のように追加できると思いました。

def self.my_function
    # Code here...
end

/config/application.rbに移動してから、次のコマンドを呼び出します。

Application::my_function

私のアプリケーションのどこでも。しかし、それはうまくいきませんでした。そこで、グーグルを実行しましたが、グローバル関数を公開できるようです。

  • /app/controllers/application_controller.rbにある私のコントローラーの場合
  • /app/helpers/application_helper.rbの私の見解について
  • /lib/にある私のモデルの場合

しかし、一度にそれらすべてのためではありません。

私が欲しいものが可能かどうか誰かに教えてもらえますか?

また、これは理想的にはどこからでもアクセスできると想定されているため、includeステートメントはできるだけ避けたいと思います。ただし、この時点で、この関数のロジックを1つの中央の場所で定義できれば、includeステートメントを使用しても問題ありません。

4

1 に答える 1

10

config/environment.rbアプリが初期化される前に、次のように定義します。

<YourApp>::Application.initialize!
于 2013-03-08T08:08:17.643 に答える