2006-07-04 優しいRailsの育て方 [長年日記]

[Rails] ScopedAccess

ScopedAccess プラグインを更新しました。実は今までは production モードでは正しく動かなかったのですが、今回の修正で使えるようになったはずです。

[修正点]

  1. dispatcher でリクエスト毎に AR.scoped_methods をクリア
  2. Filter#before で条件をキャッシュしてた不具合を修正 (thanks to Nikhil)
  3. method_scoping 中の MethodScoping を ClassScoping に自動変換

※ 1,2 は production への対応です。

[svn]

http://wota.jp/svn/rails/plugins/branches/stable/scoped_access

[使い方]

コードはいつもと一緒

class BlogController < ApplicationController
  scoped_access Blog
protected
  def method_scoping
    ScopedAccess::MethodScoping.new :owner_id => session[:owner_id]
  end
end

修正3によって、SQLの条件節が "owner_id = ?" でなく、"blogs.owner_id = ?"になるのがポイントです。関連や結合でカラム名が衝突した時に役立ちます。

本日のツッコミ(全4件) [ツッコミを入れる]
_ lam (2007-12-14 09:50)

Rails 2.0で動かないんです><<br>便利なのに残念なんです><

_ 舞波 (2007-12-15 08:44)

多分 DHH が with_scope に意地悪したからです><<br>修正は send にするだけだと思うので時間を見てコミットします><

_ 舞波 (2007-12-19 02:26)

修正しまんた。とりあえず trunk に入れてますが、これで 2.0 でも動くと思います。<br><br>http://wota.jp/svn/rails/plugins/trunk/scoped_access

_ lam (2007-12-22 19:11)

ありがとうございます!<br>さっそく試してみます。


サイト内検索 (by Google)

| JRuby | Rails | Berryz | ℃-ute | エッグ | jQuery |

過去

2006年
7月
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31

未来

コンタクト