2016-07-29 2 views
0

こんにちは、まだ設定されていないメソッドにアクションを設定してフォームを送信すると、エラーが表示されないのはなぜでしょうか。投稿後、別のURLパラメータを使用して同じページに表示されます。ここでこのフォームを送信してもエラーが発生しないのはなぜですか?

は形式です:ここでは

<form> 
    <%= form_tag(drop_piece_path, :method => "post") do %> 

    <% 7.times do |col| %> 
     <%= label_tag col %> 
     <%= radio_button_tag(:column, col) %> 
    <% end %> 


    <%= submit_tag("Enter move")%> 
    <% end %> 
</form> 

は私のルートです:

post 'drop_piece' => 'connect_four#drop_piece', as: :drop_piece 

そして、ここでは私のコントローラで私drop_piece方法である:

def drop_piece 
    redirect_to fake_path #should raise an error because fake_path is not a real path 
end 

以降ので、私は混乱しています私のフォームはdrop_piece_pathに提出するように設定されていて、私のコントローラのdrop_pieceメソッドをトリガーしてはいけませんか?どちらがエラーを発生させるはずですか?

フォーム提出の直後に、アプリケーションは同じラジオボタンに対応するパラメータを持つ同じページにとどまります。

なぜ私のconnect_fourコントローラでdrop_pieceメソッドがトリガされないのですか?助けてくれてありがとう。

+0

'

'の中に ''があり、うまく動作しませんでしたか? HTMLも無効です。 –

答えて

0

これは、ネストされたフォームタグがあるために発生します。 1つは<form>タグで、もう1つは<%= form_tag... %>です。 HTML仕様ではフォームを入れ子にすることができないため、外側のものが提出されます。 action属性がないため、現在のURLに送信されます。

関連する問題