2012-01-26 3 views
2

私はコントローラーmy_controllerを持っており、その中にはアクションmy_actionがあります。 my_actionビューで私はフォームを作成し、これを手動で設定しました:<%=form_tag('/photos/create') do%>。私はphotosコントローラでこのアクションにこのフォームを送信すると、私はエラーフォームの正しいアドレスは何ですか?

No route matches [POST] "/photos/create" 

を得るでしょう(もちろんアクションcreatephotosコントローラに存在する) 私の質問は、なぜ私はとき、このエラーを取得していますされますこのアクションは存在し、どのように修正することができますか(手動でアドレスを設定する正しい方法は何ですか?)

答えて

2

あなたのルートが正しくないためです。 createの写真のアクションは、POSTの代わりに/photosルートにする必要があります。コマンドラインでrake routesを実行すると、すべてのルートのリストとそれらがコントローラのアクションにどのようにマップされているかを確認できます。

代わりにこれを試してください。詳細については

<%=form_tag(photos_path, :method => :post) do%> 

を:http://guides.rubyonrails.org/routing.html

+0

:メソッド=>:ポストは実際にフォームが合意されたデフォルト – alony

+0

@alonyでそれを使用するようスキップし、それが有用であろう把握することができますデフォルトで混乱するかもしれない新しいRailsユーザに – iwasrobbed

関連する問題