這只是基本的拼音,這樣你就可以使用require
或require_relative
。
文件的確切組織是你的,但這裏是我的偏好:
|- app.rb # This merely require_relative's all the other ruby-files, see below.
|- README.md
|- rackup.ru
|- lib/
| |- env.rb #contains settings and environment variables and such.
| |-
|- models/
| |- person.rb # Defines datamapper fields, helper and validators for Person.
|- controllers/
| |- person_controller.rb # Defines `put '/protected/person/:id' do` and other routing.
\- views/
|- layout.haml
\- person_show.haml
再次,這是給你。我強烈建議不要過早過度組織。例如,只要它們適用於app.rb,控制器就可以省略。一旦他們長大了,你想分裂他們,只有然後介紹控制器文件夾。
app.rb
將是不那麼需要的所有庫沒有更多的文件:
require "sinatra"
require "datamapper"
Dir.glob(File.join("{lib,models,controllers}", "*.rb")).each{|f| require File.realpath(f)}
這將直接加載lib下,模型和控制器的所有文件。但是您可能需要更多的關於何時以及如何加載文件的控制;在這種情況下,要求他們每一行是一個更好的選擇。
我會建議不要將Datamapper定義全部放在一個文件中。當你將他們分組爲模型時,你可能會變得更好:Person會獲取一個文件,其中Person的所有定義和殘留動作都會生效。這樣,人是孤立的,自成體系的,而不是分散在兩個文件中。