Railsの足場づくりやってみたと思う。
最近そらはーさんがコメントしてくれているのに気づきました。Rubyのプロが見てるよぅ…適当なこと書きすぎてると怒られるかもしれないよぅ…:;(∩´﹏`∩);:とか思いながらも、あれこれ調べつつ書いてます。なんかおかしいなと思ったらコメント欄をみましょう。
では早速、さくっとモデルとコントローラーをつくってしまいます。
おのおの、
rails generate model <モデル名> rails generate controller <コントローラー名>
って感じでつくるらしいです。コントローラーをつくると、同じ名前のビューも一緒にできるみたいですよ。
さてどんな感じにできるかなー…と話をすすめるつもりでしたが、
今回は色々面倒臭いのでscafforldingすることにしました。
このscafforlding、weblioによると
scaffolding
アクセント・音節scáf・fold・ing
【名詞】【不可算名詞】
1(建築現場などの)足場.
2[集合的に] 足場材料.
ということだそうです。要は手っ取り早く開発するための足場を作ってくれるんですね。早速コマンド打ってみましょう。*1
$ rails generate scaffold (*´ω`*) body:text key:interger #タプル名:型で必要なぶん書いていけばいいらしい Plural version of the model detected, using singularized version. Override with --force-plural. invoke active_record create db/migrate/20120902135717_create_(*´ω`*).rb create app/models/part.rb invoke test_unit create test/unit/part_test.rb create test/fixtures/(*´ω`*).yml invoke resource_route route resources :(*´ω`*) invoke scaffold_controller create app/controllers/(*´ω`*)_controller.rb invoke haml create app/views/(*´ω`*) create app/views/(*´ω`*)/index.html.haml create app/views/(*´ω`*)/edit.html.haml create app/views/(*´ω`*)/show.html.haml create app/views/(*´ω`*)/new.html.haml create app/views/(*´ω`*)/_form.html.haml invoke test_unit create test/functional/(*´ω`*)_controller_test.rb invoke helper create app/helpers/(*´ω`*)_helper.rb invoke test_unit create test/unit/helpers/(*´ω`*)_helper_test.rb invoke assets invoke coffee create app/assets/javascripts/(*´ω`*).js.coffee invoke scss create app/assets/stylesheets/(*´ω`*).css.scss invoke scss create app/assets/stylesheets/scaffolds.css.scss
とこんな感じにモデル、ビュー、コントローラーができあがります。楽ですね。
いい忘れていました。Railsのビューテンプレートはデフォルトではerbらしいのですが、今回はHamlを使えるようにカスタマイズしてあります。楽だし。
indirect/haml-rails · GitHubによると、Gemfileに gem "haml-rails" って追加するだけで使えるようになります。もちろんbundle installはお忘れなく。他にもJavaScriptのかわりにCoffeeScript使ったりCSSの代わりにSCSS使ったりしてます。
このあと、特に問題がなければrake db:migrateと打ちます。
$ rake db:migrate == Create(*´ω`*): migrating ==================================================== -- create_table(:(*´ω`*)) NOTICE: CREATE TABLEはシリアル列"(*´ω`*).id"用に暗黙的なシーケンス"(*´ω`*)_id_seq"を作成します。 NOTICE: CREATE TABLE / PRIMARY KEYはテーブル"(*´ω`*)"に暗黙的なインデックス"(*´ω`*)_pkey"を作成します -> 0.3234s == Create(*´ω`*): migrated (0.3235s) ===========================================
試しに起動して、http://localhost:3000/<コントローラー名>
のところにアクセスしてみると、ひと通りデータを追加したり削除したりできるページが出来上がっています。あとはこれを書き換えていって、自分の思った通りに動くようにすればいいわけですね。いわゆるCRUDの動作はひと通り網羅されていて参考になります。
しかしホント楽ですね…簡単なメモのようなものなら、ほとんどコマンド打つだけですぐにできてしまいます。恐ろしく簡単…
*1:例によってコントローラー名を(*´ω`*)にしてあります