するべきかせざるべきか、それが問題だ。

いや、つうか、ね?
Commentモデルが在ったとして、んで、Userモデルが在って。
Userモデルからhas_manyでCommentモデルと関連付けて在るとして。


んで、Commentオブジェクトを作成したUserのみに、そのCommentのエントリーを変更・削除が可能にするとして。


やり方としては、二通り考えられると思うんだけど。

  1. モデル側でアソシエーションを拡張して、カレント・ユーザとのマッチをとる(=コントローラ側でfindした時に、カレント・ユーザとマッチしない場合はNot Foundが返る)
  2. コントローラ側で、before_filterを通して、カレント・ユーザとのマッチをとって、否ならどこかにリダイレクト。


さて。
どっちが正しいやり方なんだろう?


1.だと、そのエントリーが存在しないのか、それとも、カレント・ユーザに権限が無いのかは、判別がつかないけど、2.だと、メッセージの内容を変えれば、対応可能になる。
けど、すーぱーはかーさんを相手にする場合www
そのエントリーが存在するのか、存在しないのか、を、みすみす知らせることになる訳で。


んー、どっちが良いのかねー?www


後、1.だと、Commentモデルがポリモーフィックに関連付けされて、複数のコントローラで扱われるようになっても、別段変わらないけど、2.だと、コントローラの数だけ、フィルタを書かないといけなくなるなぁ...


う〜ん、どうしよう、か、ね?