2010-12-01 1 views
0

で失敗した検証次と呼ばれます。合計で1つのビューしかありません。次のようにcomments_controllerに新しいコメントやポイントを投稿するためのフォームを含むchapters_controller、からビューの表示は、アクションを作成する(制御コードが含まれている):Railsのビュー:欠落しているテンプレートの後にレンダリング私は、ネストされたコメントで、各章のリソースを持っているのRails 3</p> <p>に失敗した検証で動作するようにしようとしているネストされたリソース

http://pastie.org/1338126

それは、検証、それが誤ったルートに失敗した場合: '/章/ 1 /コメント' とページ上で以下のように表示されます。

 
Template is missing 

Missing template http://localhost:3000/chapters/1 with {:locale=>[:en, :en], :formats=>[:html], :handlers=>[:rhtml, :rxml, :builder, :erb, :rjs]} in view paths "/app/views", "", "/" 

歓声

ポール

答えて

0

私は問題がレンダリング呼び出しであると思う:

if @comment.save 
    redirect_to chapter_url(params[:chapter_id]) 
else 
    render chapter_url(params[:chapter_id]) 
end 

私はそれが(:http://apidock.com/rails/ActionController/Base/renderここではAPIを参照してください)レンダリングするURLを渡すために、正しいだとは思いません。通常は、現在のコントローラの新しいビューをレンダリングする

render :action => new 

と表示されます。

render :template => 'chapters/show' 

私のRailsの知識が少し錆びてきていると物事がで変更されている可能性があり:あなたは章「ショー」ビュー(すなわち、別のコントローラのビュー)をレンダリングしたいので、私は、呼び出しをもっとされるべきだと思いますRails 3.とにかく助けてくれることを願って。

+0

おかげジェイミーは、残念ながら、まだ私は少し困惑「の章/ 1 /コメント」 にリダイレクトいます... –

1

これからも同様の問題があります。

私はアドレスがアクションを作成するために、検証が失敗したときにレンダリングしようとしていた

render new_user_address_path(@user) 
#Normally this should work with a redirect_to or a link_to but render doesn't work this way 

代わりにあなたがする必要があります

render 'new' 

@ideaasylumが述べたように、あなたがは「レンダリングすることはできませんヘルパーと名付けられましたが、あなたはです。アクションをレンダリングします。私にとっては、それはレール付きの独特のもののようです。技術的に名前付きのパスとアクションは同じ場所に移動する必要があります。

0

リダイレクトした後、redirect_toが返されないため、すぐに戻ります。

if @comment.save 
     redirect_to chapter_url(params[:chapter_id]) and return 
    else 
     render chapter_url(params[:chapter_id]) and return 
    end 
関連する問題