基本的には以下の構成 (http://kinjo.github.com/ojag-rails/ を参考にしてます)
|-- app # アプリのソースコード | |-- assets # | | |-- images # 画像ファイル | | |-- javascripts # javascript(CoffeeScript) ファイル | | `-- stylesheets # stylesheet(SCSS) ファイル | |-- controllers # コントローラファイル | |-- helpers # ビューで使用するヘルパーファイル | |-- mailers # | |-- models # モデルをおきます | `-- views # ビューをおきます | `-- layouts # レイアウトに関するview |-- config # アプリの設定ファイル | |-- application.rb # autoloadの設定などは | |-- boot.rb # | |-- database.yml # データベースの接続設定 | |-- environment.rb # | |-- environments # 各実行モード (development, test, production) の設定 | | |-- development.rb # | | |-- production.rb # | | `-- test.rb # | |-- initializers # 使用する外部ライブラリやその設定等があれば initializers 配下に設定ファイルを作成します | |-- locales # 多言語化用の設定をおきます | | `-- en.yml # | `-- routes.rb # URLとコントローラの対応付け(後述)を設定します。 |-- config.ru # |-- db # | `-- seeds.rb # 初期データの登録処理を書きます |-- doc # | `-- README_FOR_APP # |-- lib # 外部ライブラリやアプリ全体で使用するメソッドをおきます |-- log # アプリの実行時のログがあります | `-- development.log # |-- public # |-- script # |-- test # テストプログラム |-- tmp # `-- vendor # 外部ライブラリの内、プラグインと呼ばれるものは vendor 配下におかれます
- htmlに関してはview, viewで使用するクラスなどはhelpersに
- 基本的にモデルにロジックを書くこと
- libディレクトリに、外部のディレクトリや独自モジュールなどを置く
- アプリケーションと独立してるものはlibに置くけど、そうでなくアプリケーション独自のもの(アプリケーションに対して独立してないもの)は、正直appの外のlib内には置きたくない→app/配下に独自ディレクトリを作成し、autoloadする
- autoloadに関しては、config, のapplication.rb で設定 (autoload対象のディレクトリを指定。その際に、app/配下の独自ディレクトリを指定すれば、それが使える)
こんな感じです。他のブログなどでは、lib に格納ってのがほとんどでしたが、アプリケーションとの結びつきが強いものをappディレクトリ外に置くのはなんか気持ち悪いので、とりあえずこの構成で開発することにします。