Submit Search
Railsハイパー実践講座-第35回NaCl勉強会
•
4 likes
•
1,750 views
Narihiro Nakamura
Follow
1 of 28
Download now
Downloaded 13 times
More Related Content
Railsハイパー実践講座-第35回NaCl勉強会
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.
おわり
Download