Witam,
Próbuję utworzyć formularz który po nie udanym zapisaniu, wyświetli błędy oraz w polach input przywróci poprzednio wpisane wartości które podałem przed próbą zapisu.
Niestety w żaden sposób nie mogę tego osiągnąć. Za każdym razem mam puste pola w formularzu.
Oto mój kod:
# controller
class UsersController < ApplicationController
def register
if request.post?
@user = User.new(params[:user])
if @user.save
redirect_to :login, :notice => "Twoje konto zostalo zalozone. Teraz mozesz sie zalogowac."
end
else
@user = User.new
end
end
end
[code=ruby]#view
<% if @user.errors.any? %>
<%= pluralize(@user.errors.count, "error") %> prohibited this test from being saved:
<ul>
<% @user.errors.each do |name, msg| %>
<li><%= msg %></li>
<% end %>
</ul>
Chciałbym jakoś uzyskać efekt w wyżej podanym kodzie. Co Waszym zdaniem robię nie tak?
Dodam że mimo wypełnienia formularza, po jego wysłaniu dostaje komunikaty o tym że żadne pole nie zostało wypełnione. Czyli tak jakby do User.new w ogóle nie docierała tablica params[:user]