Rails for Beginners Vol.0 にサポートとして参加しました。

Rails for Biginners Vol.0 (ビギナー枠) にサポートエンジニアとして参加させてもらい、ついでに Rails 3 本ソムリエなトークをしました。

Rails for Beginners Vol.0 (ビギナー枠)
http://atnd.org/events/28948

松本瞬さんによる初の試みでしたが、参加枠 10 人に対し、18 人の申し込みがあり、全員の参加が無理だったものの、プログラマではないけど意欲があるという方も参加されていてよかったなと思います。

当日何をやるかについて、主催者は、

というわけで半ば丸投げwでした。

環境構築組のサポートということで、僕とペアを組まれた方は、HTML などを少しづつ学んでいる方ということで、説明などは割とアバウトな感じで。3〜4時間しかない一日イベントでしたし。

エラーメッセージを見ると、

  • Rails Installer は /private/etc/profile の権限に 0440 を要求していたが、 0666 になっていた。(理由は不明)

/private/etc/profile というのは、 /etc/profile と i ノード番号が同じだったので、ハードリンクのようですね。
それはさておき、権限を変更することに。ちなみに、隣の主催者ペアは rvm や gem でインストールする作戦に切り替えた模様。

その際に、ターミナルの操作にそれほど慣れていないということだったので、

  • ls -ltr コマンド
  • Ctrl + P と Ctrl + N でターミナルの履歴を行き来できること

などといった小ネタをはさみつつ、僕も忘れていたのだが、Mac は デフォルトでは su コマンド使えないので、

を説明し、ちょっとビビリつつ、

  • passwd root で root パスワードを設定
  • chmod コマンド で 0440 に設定

という作業をして、再度インストールに挑戦。

ちなみに、LinuxMac OS などの UNIX 系 OS の入門には『UNIX先生』をオススメしています。表紙はかなりあやしげですが。

UNIX先生

UNIX先生

インストールを待つ間、僕の方の PC を使って説明。

当日は、家にある Rails 3の日本語書籍を大量に持ち込んでいたので、次の本を参考に進めました。重かった。

1人でつくる「Ruby on Rails3」アプリケーション―Webアプリケーションの開発から公開まで! (I・O BOOKS)

1人でつくる「Ruby on Rails3」アプリケーション―Webアプリケーションの開発から公開まで! (I・O BOOKS)

  • rails newコマンド
  • rails new したときに最後に bundle install が走ること
  • rails serverコマンド
  • WEBRick が簡易Webサーバであること
  • アクセスしたときログに出るステータスコード200の意味。Ctrl + C で停止できること
  • RDBMSExcel のようなものであること(笑)、デフォルトで SQLite を使うこと
  • RailsMVC やテーブルやモデル、コントローラの命名規則
  • MVC フレームワークについて、パーツ分割するという程度のこと
  • rails generate saffold
  • rake db:migrate
  • マイグレーションファイルについて、ターゲットDBMSの型と Rails での表現がマッピングされているということ
  • rake db:rollback
  • rails dbconsole で マイグレーションファイルの日付が schema_migrations テーブルに挿入されていること、rake db:rollback 時に実際にテーブルが削除されること(教えていて、あらためて気づきましたが、マイグレーションファイルの日付ってlocale の時刻じゃないんですね。)
  • ブックマークアプリ画面から入力後、rails console で、Bookmark.all 、 Bookmark.first 、 Bookmark.last 、Bookmark.where(name: => "hoge")を試す

rails console を試した理由を尋ねられ、一瞬固まってしまいましたが、

  • SQLについては、そういうデータベース問合せ言語がありますよという程度
  • MVCのファイルの配置とマッピング命名規則、コントローラの@bookmarks に Bookmark.all が格納されること、それがビューに渡ってくるところ
  • scaffold のURLとコントローラのメソッド、html.erbファイルと対応
  • URLの対応をroutes.rb で定義していること
  • Asset Pipeline について、SCSSが上手く説明できなかった(要復習w)

このあたりは、 Minami.rb のスライドなどを予習してきてもらえればよかったなと、あとで気づきました。次回移行の課題ですかね。

Rails初心者レッスン lesson1
http://www.slideshare.net/satomicchy/rails-lesson1

終盤は、環境構築組で是非ということで、heroku にアップロードをやりました。

  • Git がバージョン管理ツールであること
  • Rails には、デフォルトで developmet/test/production環境があること
  • Heroku では、PostgreSQL を使うこと、 Gemfile に修正が必要なこと

Gemfile については『基礎Ruby on Rails』で軽く触れられています。bundle install とbundle update の違いを知らない方はご一読を。このあたりも僕がこの本を薦める理由です。

改訂新版 基礎Ruby on Rails (IMPRESS KISO SERIES)

改訂新版 基礎Ruby on Rails (IMPRESS KISO SERIES)

残念なことに、git init する前に、 heroku create をしてしまい、作業をやり直していてタイプアップとなりました。この辺りは僕の課題として、よく素振りしておきたいところです。Heroku で自分が作ったものが Web に公開されるのは、とてもインパクトがあるようですね。

git はほんとの最初の一歩としてならドットインストールをオススメします。かくいう僕も git 弱者で現在学習中です。

gitの基礎 - ドットインストール
dotinstall.com/lessons/basic_git

終了後に番外編として、日本語で書かれた Rails 3 本をすべて紹介するミニトークをしました。これについては、独断と偏見による身勝手トークなので、参加者のみの特典ということにしておこうかと。トークで触れませんでしたが、英語にアレルギーがなければ、Rails Tutorial もオススメです。最近 3.2 対応に改訂されていて、有料版のScreecast は RSpec を使ったTDD(テスト駆動開発)を学ぶのに最高の教材です。周辺ツールも一番使っていますしね。たまに Railscasts のようなボーナストラックが送られてきたりします。

Rails Tutorial
http://ruby.railstutorial.org/

僕自身も勉強になったし、いい刺激にもなり、面白い時間でした。OmniAuth やAamazon S3 やってたテーブルの話も聞いてみたかったなぁ。

最後にお役立ちな小ネタを 1 つ。