弱点は、克服しないと、ねぇ...

という訳で。
しまった。弱点見つけちゃったwww」の問題を、フィックスしようと、四苦八苦ですわwww


で、別に、オイラ自身は、lnk_toの第2引数にモデル・オブジェクトを突っ込んだことはないんで、まあ、どうでもいいっちゃあ、いいんだけどwww


でも、これが、困ることが在る訳で。
例えば、PostモデルとImageモデルがCommentモデルとポリモーフィックに関連づいていたとして。
Commentモデルには、subjectとbody属性(「カラム」って云うの、やめた;-p)が在ったとして。
PostsControllerとImagesControllerが在ったとして。
config/routes.rbで、

map.resources :posts do |post|
  post.resources :comments
end

map.resources :images do |image|
  image.resources :comments
end

になっていたとして。

んで、
・/posts/:post_id/showで、Post.find(:post_id).commentsをリストしたい
・/posts/:post_id/comments/ で、Post.find(:post_id).commentsをリストしたい。
・それぞれのビューからpartialテンプレートへ投げて、その中で、Commnent.find(:id).subjectを表示する際、そのCommentオブジェクトを表示するビューへのリンクを定義したい
・Imagesに関しても同じ
・partialテンプレートは、Commentモデルをリストする全てのビューにおいて、共用する


えーっと、これくらい?


で、とりあえず、作るには作ったんだけど、ここには載せないっ!!


www
いや、ね?
だって、あまりにも、コードが汚いんだもんwww
アドホックwww
他人様のこと、どうこう云えませんよ?wwwwww


いや、つうか、ね?
結局、コントローラ名(params[:controller])拾って、それを基に正規表現使って切ったり張ったりして、polymorphicなpath作って、evalで投げてるのよ。


どう考えても、もっと上手いやり方が在ると思うんだよねぇ...


一応、仕様としては、

# nested_resources_path(nested_resources, parent_id, child_id = nil)
nested_resources_path(:comments, Post.find(1).id)
# => post_comments_path(:post_id => 1)
nested_resources_path(:comments, Post.find(1).id, Comment.find(2).id)
# => post_comment_path(:post_id => 1, :id => 2)

ってな風になっているんだけど...
parent_idにparams[:id]拾って入れようとして、入らない時とか在ったりしてwww
あと、ルーティングの問題なのに、コントローラ名(つうか、params[:controller])に依存する様になってしまったのが、なんとも...
結果、ルーティングのリソース名(/posts/1/comments/1の「comments」)が、コントローラ名の末尾にマッチしないと、正常に機能しませんwww

う〜ん、やっぱり、ルーティングのリソースのみに依存するようにしないと、ねぇ...


まいったなぁ...