【RoR】Ruby on Rails Part15
■ このスレッドは過去ログ倉庫に格納されています
0793nobodyさん
2012/12/31(月) 00:06:01.88ID:???うむ、俺も今までは各種コントローラーごとに
def owner_check
if current_user.id != post.user_id
レコード編集・削除権限がない場合の処理
end
end
こんなメソッドをいちいち書いてbefore_filterでシコシコとedit や destroyに適用してた
しかし、CanCanを入れると
can, [:edit, :destroy], Post, {user_id = current_user.id}
を一行入れるだけで済むようになる
しかも、そこらへんの権限については
柔軟な対応可能が可能になり短い文をroutes.rbのように書き出すだけで事済むようになる。
20文字くらいを一行書くだけで、もはやコントローラーを触る必要がなくなった。しかもCanCanの他の機能のload_resourceは超便利!
みんな@post = Post.find(params[:id])
を各メソッドごとに書くか
before_filterで@postを取得してるだろ?これをする必要がなくなる
つまりコントローラー内から
@post = Post.find(params[:id])
の表記を全て削除できる
なんぞこれ!?ってくらい便利
CanCanって海外だとdeviseくらいに多く使われてるし何よりdeviseとの相性が良すぎる。なんせCanCanの作者は俺たちのお師匠ライアン様(Railscast)だからね
■ このスレッドは過去ログ倉庫に格納されています