Your SlideShare is downloading. ×
Railsハイパー実践講座-第35回NaCl勉強会
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

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

3,020

Published on

Published in: Technology
0 Comments
4 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
3,020
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
10
Comments
0
Likes
4
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

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

×