1

Rails プロジェクトで使用する必要があるモジュール ファイルがあります。Rails のモデル、ビュー、コントローラーなどを変更しても、サーバーを再起動する必要はありません。しかし、そのモジュールに変更を加えると、サーバーを再起動する必要があります。

module.rbRails クラスから何も継承しません。

構造は次のとおりです。

class_1.rb < class_2.rb includes module.rb

class_1.rb, class_2.rb are also not ActiveRecord classes. それらはすべて、モデルのディレクトリにあります。

私のconfig/enviroments/development.rbファイルは正しいです。これは次のとおりです。

  config.cache_classes = false
4

1 に答える 1

1

更新: Rails 3.2.9 の場合、これはすぐに使用できるはずです。
これが私が試したもので、サーバーを再起動せずに機能します:

# ../models/a.rb
class A
  include SomeModule
  def test
    " test:a"
  end
end

# ../models/b.rb
class B < A
  def test
    super + " test:b"
  end
end

# ../models/some_module.rb
module SomeModule
  def call_test
    test + " test:module" 
  end
end

# ../controllers/home_controller.rb
class HomeController < ApplicationController
  def index
    @i = B.new.call_test
  end
end

モジュールが autoload パス内に存在しない場合、これを application.rb 内に配置できます。

# Autoload lib/ folder including all subdirectories
config.autoload_paths += Dir["#{config.root}/your_module_folder/**/"]
于 2012-12-07T11:12:25.653 に答える