Successfully reported this slideshow.
Your SlideShare is downloading. ×

Railsハイパー実践講座-第35回NaCl勉強会

Ad

Railsハイパー実践講座
                           第35回NaCl勉強会

                             中村 成洋
                          ネットワーク応...

Ad

今日お話しすること
 細かすぎて本には書かれていない内容
 ハイパーでアチョーな実践的なテクニック
 来年には使えないテクニック多数
 Tips22連発
 適宜ツッコミ歓迎




                       1/27

Ad

jsはprototype.jsを使うこと
  jqueryに対応していない
  Rails3だと切り替えられるらしいとの風の噂




                            2/27

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Upcoming SlideShare
SignalRブートキャンプ
SignalRブートキャンプ
Loading in …3
×

Check these out next

1 of 28 Ad
1 of 28 Ad

More Related Content

Railsハイパー実践講座-第35回NaCl勉強会

  1. 1. Railsハイパー実践講座 第35回NaCl勉強会 中村 成洋 ネットワーク応用通信研究所 Powered by Rabbit 0.6.2
  2. 2. 今日お話しすること 細かすぎて本には書かれていない内容 ハイパーでアチョーな実践的なテクニック 来年には使えないテクニック多数 Tips22連発 適宜ツッコミ歓迎 1/27
  3. 3. jsはprototype.jsを使うこと jqueryに対応していない Rails3だと切り替えられるらしいとの風の噂 2/27
  4. 4. fixtureは使うな 必ず破綻します machinistやfactory_girlを最初から導入するこ とを強くお勧め ただし、小さいアプリでは気にする必要はない 画像アップロードのテストがしづらい marsでは手動テスト用のテストデータとして fixtureを利用 3/27
  5. 5. mock,stubライブラリを使え(た だし適材適所) ところ構わず使わないこと ここをだましたいって時に使うべし グローバルな情報を修正したい場合。 例:クラス内のメソッド書き換え、Time.nowの値を変え たいとか mock,stubの違いは自分で調べるべし 4/27
  6. 6. マスタデータのロードには seed.rbを使う rake db:setup の際に呼ばれる DBマスターデータ等々、アプリケーションに必要 なデータはここで読ませると良い 5/27
  7. 7. STIはロードではまる STIはテーブルが存在しないクラスができてしま う requireを書いた方が良いかも(要確認ですが) 6/27
  8. 8. ポリモーフィックアソシエーショ ンはソートではまる ソート画面があったら注意 STIの方が好ましい ポリモーフィックアソシエーションだと処理が煩雑 になる 7/27
  9. 9. プロジェクト専用のscaffoldを 作るべし コントローラや、viewがある程度似てくる 共通化は出来ない程度 ミスの大量生産に注意 8/27
  10. 10. 確認画面でセッションは使うな 色々とはまる いつクリアする?とかとか 9/27
  11. 11. polymorphic_urlを使え STIやポリモーフィックアソシエーションでコント ローラのURLが変わってしまうとき 意外と知らない人が多い 10/27
  12. 12. g,nをデバッグ時に使う Macなら g Linuxなら n 11/27
  13. 13. 困ったらrailsのソースコードを 引くこと すぐ引けるようにしておくことが大事 gemも同様 12/27
  14. 14. attr_accessible, attr_protectedを忘れずに :user_id, :xxx_id には attr_protected しておい た方がセキュア まあ、そういう使い方をコントローラでしなければ 問題ないけど 13/27
  15. 15. boolean型の名付け方 is_xxx は辞めよう usable みたいなのがいい モデルにはusable?メソッドが自動で定義される 14/27
  16. 16. gemのバージョンは絶対指定し ろ environment.rbに必要なgem記述 絶対バージョン指定する 不意にバーションが上がって最悪の自体 どのバージョンを使っているかわからなくなる 15/27
  17. 17. レコードは親、子供の順でセー ブする Railsの仕組み上、そうできている 16/27
  18. 18. 親、子供を一つのアクションで 保存するときは auto_save を 使え has_many :xxx, :auto_save => true 親が保存されると子供も保存される valid? の時に子供に対して valid? が届く この際に validates_association は使わないこ と 17/27
  19. 19. accepts_nested_attributes_f orを使うべし 便利 18/27
  20. 20. count,size,lengthの違いは常 に意識して 件数のみ取得したい size カウンタキャッシュの使用 すべてロード済みの場合、配列の個数。駄目な 場合、SQLのCOUNT文。ロードはしない。 count ロード済みでもSQLのcount文を発行する。ロー ドはしない。(件数の後、色々操作したい) 19/27
  21. 21. count,size,lengthの違いは常 に意識して 件数取得後、色々と操作 length DBからロード済みであれば配列の件数、なければDB から実際にロードする 子要素の中身をその後使用する際に使う。 20/27
  22. 22. counter_cacheの使い所 子レコード数でソートするときなんかに使う それ以外は全く使う必要なんかない 親を先にセーブしとかないと駄目 条件も指定できない(これはとんでもなく酷い) カラム名を規則に合わせて、自分でカウントアップ、ダウ ン処理を作ることで回避 21/27
  23. 23. form_forのpost,put @xxx が new_record? だと自動的にpostにな る それ以外は put アレ、正しいアクションに飛ばない?って時は大体 コレを疑う 22/27
  24. 24. rvmの勧め 通常のrubyスクリプトはパッケージの物を使いた い(当然!) 他のパッケージとの兼ね合いもあるしね patch-levelは上がっていく その版の最新のものを使いたい project毎の .rvmrc !! 23/27
  25. 25. お勧めplugin,gem ruby-toolboxを見るべし http://ruby-toolbox.com/ 24/27
  26. 26. enum_columnプラグインの紹 介(拙作) フラグを扱いたい 例 :publiced, :private, :member_only けどテーブルにするまでもない 25/27
  27. 27. 実例
  28. 28. おわり

×