私は今これが1000回尋ねられましたが、それは私を助けないheh :)私はこの1時間に行ってきました。マイ形式:Railsルーティングエラーネストされたform_for
= form_for @comment, :url_for => { :action => "create", :controller => "comments"}, :method => :post
私のすくい路線:
POST /t/:trunk_id/r/:root_id/comments(.:format) {:action=>"create", :controller=>"comments"}
trunk_root_comment GET /t/:trunk_id/r/:root_id/comments/:id(.:format) {:action=>"show", :controller=>"comments"}
エラー:
undefined method `comments_path' for #<#<Class:0x007fed2c713128>:0x007fed2c71cc78>
私は、フォームのスペースに名前を付ける場合に:
作るべき= form_for [:trunk_root, @comment], :url_for => { :action => "create", :controller => "comments"}, :method => :post do |f|
ルートtrunk_root_comments_path ..は正しいですか?すくいルートにオルディング..私は得る:
No route matches {:controller=>"comments", :format=>nil}
ヘルプは非常に高く評価された。..時間これを見て..
UPDATE:
は、このような偉大な答えをあなたにライアンをありがとう!私は何かを非常に明確に説明しています。私はちょうど「物事を投げかけている」というものでしたが、少なくとも私はよく理解しています。私は実際に私のレーキルートで 'trunk_root_comments_path'を利用していましたが、あなたが言及した組み合わせのいくつかを試してみましたが、私が欠けていたものを本当に貪欲にしていませんでした。私はMongoを使っていますが、Trunkモデルを実際には持っていません。私はトランク・コントローラを持っていてルートの一部(おそらく悪いアイデア)を持っていますが、 。
は、だから私はあなたのTLDRを試してみましたが、それがエラーを言った:?
Undefined method 'root_comments_path'
...何のトランクモデルが存在しない原因となり、私が想定し..ので、私はちょうど
= form_for [@trunk, @root, @comment] do |f|
で正しいIDと等しく@trunk作ら
< - と私は..私は私が失敗してるので、私は同様にあなたの最も明確なバージョンを試してみなければなりません。..おそらく理にかなっている。..うまく考え出し「「未定義のメソッド `politics_root_comments_path」を得た:
= form_for @comment, :url => (trunk_root_comments_path(:trunk_id => @root.trunk, :root_id => @root.id)) do |f|
と確かに十分です...だから私はそれをもっと短くする方法はあまりよく分かりません。私にとって奇妙なことは、ルートの深さと同じレベルの別のネストされたリソース「写真」があることです私はそれを= form_for [:trunk_root、@photo]、:html => {:class => 'root_form'}とすることができました| f | ..しかし、何らかの理由で私はできませんでした..とにかく私は100%理解するのに十分なことを私にくれたと言いますが、私は20%の理解から50%の理解に向かうと思っています。私はIDが経路にとって重要であることを知っています。私は、url_helperの仕組みを紹介していますが、実際にはそれを完全に踏襲するために、もっと詳しく読む必要があります。私は今でも、このような難しい状況を乗り切るために、長い道のりで適切なルートを構築することができます。だから、あなたに感謝:)あなたはこのルートが設定したがしようとしている場合
私の答えを無視してください(少なくともしばらくは):あなたのルートはどのように設定されていますか? – jlundqvist