2009-08-17 15 views
0

この質問はルーティングフィルタに関連しています。ruby​​ on rails/routing-filter/form_for変更html

私は、私の見解では、これを持っている:例えばI18n.localeを変更した後

<form action="/en/posts/show" method="post"> 

:これにブラウザに変換

<% form_for :post, :url => {:action => "show"} do |f| %> 

I18n.locale = :en 

HTMLは次のようになります。

<form action="/en/posts/72" method="post"> 

とアクションが動作していないと、私はこのエラーを取得:

Unknown action

No action responded to 72.

確かに、この数字は72のようなアクションはありませんアクションの入力を示すそして正しいポスト番号です。したがって、このアドレスlocalhost:3000/en/posts/72をブラウザに置くと、問題なくページが表示されます。

なぜそれがフォームでは機能しないのですか?

ありがとうございました。

<% form_for :goal, :url => { :action => 'show' }, :html => {:method => :put} do |f| %> 

それは私の仕事:

+1

あなたはなぜショーのアクションに投稿していますか? – askegg

+0

どうしてですか? 足場からのデフォルトのショーアクションのコードは、 @post = Post.find(params [:id]、... )ですので、IDを正しく取得する必要がありますか? – valk

+0

POSTは、オブジェクトを更新するためにデータを送信することを意味します。表示するオブジェクトとGET要求が十分であり、RESTfulです。 – askegg

答えて

2

はそのような方法を指定します。

関連する問題