ゆうなんとかさんの雑記帳的な。

Twitterで踊ったり音ゲーしたりしてるあの名前がよくわからない人が書いてるらしいよ。

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:例によってコントローラー名を(*´ω`*)にしてあります