するべきかせざるべきか、それが問題だ。
いや、つうか、ね?
Commentモデルが在ったとして、んで、Userモデルが在って。
Userモデルからhas_manyでCommentモデルと関連付けて在るとして。
んで、Commentオブジェクトを作成したUserのみに、そのCommentのエントリーを変更・削除が可能にするとして。
やり方としては、二通り考えられると思うんだけど。
- モデル側でアソシエーションを拡張して、カレント・ユーザとのマッチをとる(=コントローラ側でfindした時に、カレント・ユーザとマッチしない場合はNot Foundが返る)
- コントローラ側で、before_filterを通して、カレント・ユーザとのマッチをとって、否ならどこかにリダイレクト。
さて。
どっちが正しいやり方なんだろう?
1.だと、そのエントリーが存在しないのか、それとも、カレント・ユーザに権限が無いのかは、判別がつかないけど、2.だと、メッセージの内容を変えれば、対応可能になる。
けど、すーぱーはかーさんを相手にする場合www
そのエントリーが存在するのか、存在しないのか、を、みすみす知らせることになる訳で。
んー、どっちが良いのかねー?www
後、1.だと、Commentモデルがポリモーフィックに関連付けされて、複数のコントローラで扱われるようになっても、別段変わらないけど、2.だと、コントローラの数だけ、フィルタを書かないといけなくなるなぁ...
う〜ん、どうしよう、か、ね?