2016-07-29 66 views
0

嗨,我想知道爲什麼我沒有得到一個錯誤,當我提交表單的動作設置爲尚未設置的方法。提交後,它只是讓我在不同的網址參數在同一頁面上。爲什麼不提交此表單會引發錯誤?

下面的形式:

<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

發生這種情況是因爲您嵌套了表單標籤。一個是<form>標記,另一個是<%= form_tag... %>。 HTML規範不允許嵌套表單,所以提交了外部表單。由於它沒有action屬性,因此將其提交到當前URL。

相關問題