Railsを始めて1週間経過したくらいの方への参考

  • rails開発環境を整える
  • 資料
  • config/database.rb
    • 実験する場合はSqlite3で大丈夫
  • サーバ
  • DB
    • :conditions => ["hoge > ? AND hoge < ?", foo, bar]でインジェクション対策
    • :conditions => ["created_at > ?", 1.week.ago.utc]で一週間以内に作成されたものを検索
    • model.created_at.to_s(:long)等で整形してくれる。カスタマイズも可能。
  • Rubyの1.8.6の最新を入れる
    • 1.8.5と1.8.6の一部のバージョンはDOS攻撃を受ける可能性がある。ただしpatchで防御可能。
    • 1.8.7だとRails 2.xとの相性が悪い。
  • Rails 2.xを利用する場合
    • 検索エンジンで検索するときに"2.0"もしくは"2.1"、"-1.2"を加える。
  • ヘッダーとフッターについて
    • app/view/layout/application.html.erbを作成することで全てのviewに適用することが出来る。
    • titleタグについてはapplication.html.erbでは<%= @title %>として、controller側で@titleに値を入れる。
    • google analyticsスクリプトも入れる。
  • db/migrate
    • script/generate model Cat name:string description:text
    • script/generate migration AddAgeToCat age:integer
      • カラムをcatsに足すことができるadd_columnのコードを自動生成できる。
  • config/route.rb
    • どのcontrollerが呼ばれるかはroute.rbが決定
    • scaffoldは勝手にroute.rbを編集するからアクセス可能
    • 再起動して適用?
    • rake routesで確認できるだけで、rake routesでrouteが構成されるのではない
  • config/initializers/
    • 入れておくと勝手に読み込んでくれる。patchや定数宣言を置く場所。
  • デバッグ
    • scripe/consoleでrails環境を読み込んだirbが起動するので、そこでmodelを叩いてデバッグする。
  • ajaxを活用する
    • Railsの基本機能で簡単にドラッグ&ドロップが行える。
  • プラグインを活用する
    • will_paginate
      • findの代わりにpaginateすることによってページ分けすることができる
    • restful_authentication
    • acts_as_commentable
      • 好きなModelにコメント付け
    • acts_as_list
      • リストの順番付け
    • acts_as_taggable_on_steroids
    • SafeERB
      • HTMLエスケープ忘れを見つけてくれる。
      • sqliteのレコードでは見つけてくれない。
    • background_fu
      • workをqueueしてくれる。queueはDB上にあり、一定時間ごとにdaemonがqueueがあるかどうかを見にいく。
  • チューニング
    • Railsのチューニングはproductionにしてから
      • productionにしないとcacheが効かない。
    • 書き込みに対して読み込みが多いサイトになる予定なら、なるべくcacheする。
    • passenger(mod_rails)だとdevelopment.logにDBにアクセスするSQLクエリが表示されない。script/serverで起動すると表示される。
    • memcachedが重要なので調べるべし。
    • ログインユーザ名以外はcacheしてもいい情報なら、ログインユーザ名をajaxで取得するコードを書いてcacheする。