2006-08-16 (水) [長年日記]
■ [Emacs] org-mode
t[est]-wada先生にあやかってoutline-modeを使い始めたんだけど、どうにも使いにくいので中断してたんだなぁ。で、そこで出会ったorg-mode。TABで開閉、キタコレ。Exporting機能、KTKR。わーわー。
■ [Rails] コントローラごとにwith_scopeを実行 scoped_accessプラグイン [開発に必須]
[必須]とありますが、舞波さんの「使ってる人ー!」で手を挙げなかった派から言わせてもらうとですね、ぜんぜん必須じゃないんですね、これ。理由は、ロールはユーザーだけじゃないからです。
Rails使ってる人の意見をあんま聞いたことないんで、もしかしたらやっぱり必須なんじゃねーかとビクビクしながら書きますけども、普通は最低でもユーザーと管理者がいるじゃないですか。で、できればコントローラーは共通にしたいのデスよ(管理者側はscaffoldでいーじゃんってのもあるけどさー、ロールは増えていくしさー、ロールごとに分けてられねーしさー)。
だもんで、
- :conditions には session[:loggined_user_id] じゃなくて、URLに含まれるidを使う(params[:uid]とかね)。
- LoginEngineとかを使ってるなら、authorize? メソッドで判定する。
protected def authorize? user return true if user.admin? # adminは必ずおk return params[:id] == user.id end
短所としては、自分のプロフィールを変更するときに、/users/edit?uid=1 みたいにいちいちIDを指定しなきゃいけないわけですけども、これをダサーと思うか、ロールが増えてもみんなそこにアクセスすればいいから統一してて素敵ーと思うか、ですかね。
つーか、Railsでロール管理とかどーやんだマジで。しんどいよー。

おおー、早速私も使ってみます
ツッコミに一杯書いたら消えた!<br>えっと、えっと、自分のブログに書きます><