2016-07-29 3 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 в моем контроллере? Который должен затем вызвать ошибку?

Снова, прямо сейчас после отправки формы приложение просто остается на той же странице с параметрами, соответствующими любому переключателю, который я выбрал.

Почему это не вызывает мой метод drop_piece в моем контроллере connect_four? Спасибо за помощь.

+0

Вы видите, что у вас есть '

' внутри '', который не работает. Это также неверный HTML. –

ответ

0

Это происходит потому, что у вас есть вложенные теги формы. Один из них - <form>, а другой - <%= form_tag... %>. Спецификация HTML не допускает вложенные формы, поэтому внешний представляется. Поскольку он не имеет атрибута action, он отправляется на текущий URL-адрес.

Смежные вопросы