Hatena::ブログ(Diary)

はらぐろブログラマン このページをアンテナに追加 RSSフィード

2008-11-12

[] libディレクトリとオートロード(autoload)

ディレクトリ、ファイル名規則

railsでのオートロードを有効にするにはlibの下のファイルは

lib/モジュール名1/モジュール名2/.../ファイル名(.rb)

というように配置します。

例)

/lib/yaruo/nuite/kara/yuna_yo.rbというファイルの中身

module Yaruo::Nuite::Kara
  class YunaYo
    def tissue_empty?
      return true
    end
  end
end

この規則に従ってるとrequireしなくても、

controller,modelでYaruo::Nuite::Kara::YunaYoが使用できます。

クラスが見つからなかったときに、

railsが自動的に銘々規則に従ってlib以下を探します。

明示的なrequireはしない方が都合が良い

railsの開発中は、サーバー起動したまま、ソースをガシガシ変更して、

ブラウザでリロードしたら編集後のソースで動いて欲しいです。

でも、明示的にrequireしちゃうと、編集後のソースを読んでくれません。

なので、libの下は銘々規則に従って、railsに自動で読ませるようにしておくのが吉。

libって何置くの?

アプリケーションで使うmodel,controller以外のクラスなどです。

自分はcontrollerにあまりゴテゴテ書かないようにして、

libの下に追い出してます。

その方が使い回しが効くのと、テストが楽だからです。

(controllerのテストはむずいし面倒。やるけどね。)

ちなみに自分は、lib/以下のクラスのテストは、test/unit/以下に置いてます。

上の場合

test/unit/yaruo/nuite/kara/yuna_yo_test.rb

j-soumaj-souma 2009/09/05 10:33 参考になりました

はてなユーザーのみコメントできます。はてなへログインもしくは新規登録をおこなってください。