作るもの決めて #p4d 参加したらだいぶ実りあった

いつも漫然となんとなく何やるかも決めずに参加してしまっていたp4d (デザイナー向けプログラム部)なんですが、それでも毎回色んな話できるだけでも楽しかったのでまあよかったのですが、なんかそれもアレだなあと思い、今日は作りたいものを決めてから臨んだら、皆さんに教えていただいたおかげでとても充実したp4dでした。
普段仕事では、プログラマの皆さんが既に作ったRailsアプリの中の、デザインやフロントエンド部分をいじる感じのことをしていることが多いのですが、イチからRailsアプリを一人で作って公開レベルにまで持っていくようなのがそろそろやりたいと思ってたところでした。

今日やったこと

完成・公開する前に大々的にネタばらししてしまうのもなんか寒いので、何作ることにしたかはここでは詳しく言及しないけど(でも割と言いたい)、今日の仕事中に思いついたやりたいネタを持って行ったら、今日は@satococoaさんに、モデルの設計から、scaffoldで作ってみるところまで教わることができました。
今回 "Task" というModelの中にこのようなカラムを作りたい。

  • title:string
  • point:integer
  • status:string
  • memo:text
  • started_at:datetime
  • finished_at:datetime

という場合はこのようなコマンドを実行。


$ rails g scaffold Task title:string point:integer status:string memo:text started_at:datetime finished_at:datetime
すると、db/schema.rb に以下のように書かれる。(上記コマンドでtypoした時はここを修正すればよい)

create_table "tasks", :force => true do |t|
t.string "title"
t.integer "point"
t.string "status"
t.text "memo"
t.datetime "started_at"
t.datetime "finished_at"
t.datetime "created_at", :null => false
t.datetime "updated_at", :null => false
end
これで、

$ rake db:migrate
すると、scaffoldが動く(はやい!)


さらに、Haml派なので、Gemfileに

gem 'haml-rails'
gem 'erb2haml'
を追加する。
erb2hamlをbundleして、

$ rake haml:replace_erbs
を実行すると、erbを全てHamlに変換してくれる。
さらにCompassを追加。

group :assets do
gem 'sass-rails', '~> 3.2.3'
gem 'coffee-rails', '~> 3.2.1'
gem 'compass-rails'
さらにSassの設定を追加。config/application.rb に以下の2行を書いておく。

config.sass.line_comments = false
config.sass.cache = false
ここまでできたので、後はデザインやフロントエンド部分を自力で整えて次回に臨(めるといいなあ…)

「ハマらないと覚えない」

Rubyを覚えたくて、以前ドットインストールをやってみたんだけど、やってる最中は面白くてなるほどなあーと思いながら学んでるんだけど、すぐ忘れてしまう。
まあ、継続して使い続けなかったり、復習したりしないと忘れてしまうのは当たり前なんだけど、ああいうのなんかいい手ないんですかね、という話を 終わったあとの懇親会でしてて、その時に @willnet さんと @satococoa さんがおっしゃってた、
「ハマらないと覚えない」
というのがとても印象的で、確かにああそうだよなーと思いました。
言われた通りやって、一発でうまく動いてしまうと、なかなか記憶に残らんのでしょうね。
やっぱり、自分なりの工夫が必要になる、実際の仕事や自分の作りたいものを作る中で、色々ハマりながら覚えるのが一番身になるんだろうなー。
あと、Railsアプリのデザインやってると思うのは、そろそろhelperを自分で書けるようになりたいですね。わかりそうな部分は見よう見まねで書く時もあるんだけど、自分でもっと工夫して書けるようになると、さらにDRYで良い感じなRailsのデザインができそう。

そんなわけで、p4dは今回も楽しかったなあ。参加の皆様、今回主に教えていただいた @satococoaさん、どうもありがとうございました。

今回のKPTはこちら
https://github.com/prog4designer/meetups/wiki/%E7%AC%AC19%E5%9B%9E%E6%9C%AC%E4%BC%9A%E5%A0%B4
人気で参加者募集がすぐ埋まってしまったため、今回はサテライト会場ができてて(すごい!)そっちも盛り上がったようです。