jasagiri @ ウィキ
rubywavesチュートリアル
最終更新:
jasagiri
開発の流れ
- waves <アプリケーション名>
- <waves_apps_root>\configurations\default.rb編集
- rake schema:migration name=initial_schema
- <waves_apps_root>\schema\編集
- rake schema:migrate
- ビューの作成
- mkdir templates/<モデル名>
- list.mab
- add.mab
- edit.mab
- モデルの作成
- rake generate:model name=<モデル名>
- <waves_apps_root>\models\編集
- 関連追加
- migration
- マッピングの作成
- <waves_apps_root>\configuration\mapping.rb編集
- RACK設定変更(static public files : css javascript)
- <waves_apps_root>\configuration\development.rb編集
waves-server
- <waves-home>\lib\runtime\server.rb
- <waves_apps_root>\lib\startup.rb
- <waves_apps_root>\lib\<アプリケーション名>
- Sequel
- AutoLoad
- configurations
- database
- controllers
- models
- views
...
waves-server OPTION
-p --port=PORT -h --host=HOST -c --config=CONFIG -D --dir=DIR -d --daemon *mswin32ではforkがらみで動かない -u --debugger
- windows だとオプション利かない?
rubyは で囲むと文字列扱い ""で囲むと変数展開してくれる
チュートリアル翻訳はma2さんの日記にわかりやすくあるので省略。
流れを記載して、0.7.3rc2での違いとかsqlite使うメモとか追加。
tutorial-1
- アプリケーション雛形作成
waves blog
configurations/development.rb 編集 database :adapter を変更 'mysql' から 'sqlite' :database をblog.sqliteに変更
- データベースファイル作成
firefoxのSQLiteManager使うとお手軽。 アプリケーションルートにblog.sqliteで作成。
- migration
rake schema:migration name=initial_schema scheme/migrations/001_initial_schema.rb 編集 (down メソッドも忘れずに) rake schema:migrate
- waves-consoleで確認
waves-console
デフォルトはSequelの文法に慣れると幸せ。ActiveRecodeと比べるとデフォルトで主キーが使えるくらい?ユーザ数が違うのであまりメリットないかも。 Ambitionに将来を感じるがサポートされない。ParseTree使うとruby1.9で動かないらしい。waves でも ParseTree を dependent してたような...
tutorial-2
- view作成
templates/entry ディレクトリ作成 templates/entry/list.mab 作成 layout ヘルパでデフォルトレイアウトを設定する。 @entries はlistビューなので自動で設定される。 view ヘルパで呼び込むレイアウトを入れ子に出来る。 templates/entry/summary.mab 作成 templates/entry/show.mab 作成
ブラウザで /entries にアクセスすると template/entry/list.mabが呼ばれる。 ブラウザで /entry/#name にアクセスすると template/entry/show.mabが呼ばれ、Entry テーブルから #name のレコードを表示する。
templates/entry/editor.mab 作成
tutorial-3
- model controller mapping作成
rake generate:model name=entry (Modelが無くても動いていた!) one_to_many :comment :class = xxx 外部キーになる側のmodelに :keyをつける (:from が deplicate で :classに変更される) rake generate:model name=comment one_to_one :entry :class = xxx
templates/entry/show.mab 編集 view ヘルパでcomment入力欄とコメント一覧を設定
templates/comment/add.mab 作成 RESTなので新規の場合はPOST hiddenフィールドで :key に指定したフィールドを設定 templates/comment/list.mab 作成
configurations/mapping.rb 編集 # your custom rules go here 以下に新しいルールを記述する lib/mapping/mapping.rb に例がある
created_onがnullになるので Model クラスに before_save を参考に after_create を追加する。
tutorial-4
- css javascript
tutorial-5
- login