rails勉強会に行ってきた。

rails勉強会に行ってきた。



たのしいRubyの人とかヽ( ・∀・)ノくまくまーの人が来ていました。



yuum3の人に、初心者向けセッションをしていただきました。どうもありがとうございます!



coLinuxでの環境構築


  • 資料:
  • 参考:
    • WEB+DB PRESS Vol.40 「特集2 coLinux,Emacs,GNU screen,zsh[定番]Linux開発環境」
    • ↑今回の講習はこれが元になっている。でも、このままだと結構はまった。
  • なにがうれしいのか
    • Windows上のrailsはとても遅い。coLinux上のrailsのほうが早い。
  • インストール
    • パーソナルファイアーウォールetcがあるとはまるのではずしておく
    • コア部分とFS部分のインストールがある
    • FSにはubutu/Fedora7/Debianがある。Yuumi3の人はubutuを使っている
  • 起動
    • ネットワークの設定をすませるまではcoLinuxコンソールで。英語キーボード扱いになるので注意。
    • いろいろ設定。Windowsのインターネット接続の共有機能を使ってネットワークに出られるようにする
  • インストール
    • rubyとかgemとかsqliteとか
    • sambaでファイル共有すると、Windowsのエディタで編集できる

coLinuxは、サーバで使っているのとは別のlinuxを使わないといけないので、同じマシンを動作させられるvmwareのほうがいいのでは、と思っていたのですが、お手軽さは魅力的ですね。


Scaffoldの半歩先へ


  • 参考資料
     

    • railsによるアジャイルアプリケーション開発 <いい本だけど、読みにくい
    •  

    • 舞波さんの本 <開発し出すと役に立つ
  •  

  • リファレンス
     

      

  •  


実習


  • railsコマンドで todo プロジェクトを作成。
    rails todo -d sqlite3
  • config/database.yml を変更。
  • script/generate で todos テーブルに対応する
  • Modelを作成。
    ruby script/generate  model todo due:date task:string
  • rake db:migrate でDBにテーブルを作る。
    rake db:migrate
  • script/generate scaffold でひな形を作成。
    ruby script/generate scaffold todo
  • script/server でサーバーを起動。


コードを見る


  • 重要なのはAPP
    todo\app>dir
    controllers
    helpers
    models
    views
    • いわゆるMVCモデル
  • 例えばapp/views/todos.vhtml
    • railsであつかうhtmlテンプレート。rubyのコードっぽい物が書かれている。erbとかeRubyとか。
    • <HTML>がないじゃん?:layoutsに書かれている。
  • app/controller
    • todo_controller.rb
    • URLに応じた処理が書かれている
    • 例えばlist。pagenateというのが使われている。ヘルプ見る。
      • per_pageで1ページあたりの個数とか、orderでソート順とか指定できる
    • todo_controller.rbのlistメソッドでorderを指定すると、ソート順が指定できる。
    • debugモードだと、書いたコードがそのまま動く。


名前の規約



一つのコントローラーで何でもすると大変なので、普通、いくつかのコントローラーに分ける。

実習2


実習3

このへんは、テキストにある話をザーッと流した感じ。

おまけ:ログの見方



ターミナルで見ると色つきで見える <設定すればplainTextにも出来る。ブログに記事があったはず。


感想



 動かしながらやると終わらなさそうだということでしたので、ざ~っと説明しながらやって見せていただく、という感じになりました。
当然ながらこれだけでは頭に入らないので、早速やってみないと。

コメントする

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です