Zapamiętanie wartości w formularzu

Witam,

jak zapamiętać wartość w formularzu po jego wysłaniu ? Mam takie coś:

<% form_for :user do |f|%> <%=error_messages_for 'user' %> <p>Zaloguj sie</p> <p><label>Email:</label><%= f.text_field :email, :value => params[:email] %></p> <p><label>Hasło:</label><%= f.password_field :password %></p> <p><%= f.check_box :remember %> zapamietaj mnie</p> <p><%= submit_tag 'Zaloguj' %></p> <% end %>

... flash[:notice] = 'Podałeś nieprawidłowy email lub hasło' redirect_to :controller => 'user', :action => 'login', :email => params[:user][:email]
Zapamiętuje wartość ale jest ona przesyłana GETem. Jak najlepiej to rozwiązać ?

rails sam wszystko zapamietuje i wysiwetla, musisz tylko w akcji ktora obsluguje formularz obiekt user przypisac do widoku

[code]@user = User.new(params[:user])
if @user.save

costam

else
flash.now[:notice] = ‘Podałeś nieprawidłowy email lub hasło’
render :action => ‘new’
end[/code]
Tylko musisz użyć render a nie redirect

Działa. Jeszcze jedno pytanie. Gdybym miał dodatkowe pole w formularzu nie powiązane z obiektem user np. “dobra_ksiazka”, w takim wypadku nie zapamiętuje mi wartości ?

[code=“ruby”]

<% form_for :user do |f|%>
<%=error_messages_for ‘user’ %>

Zaloguj sie


Email:<%= f.text_field :email, :value => params[:email] %>


Dobra książka:<%= f.text_field :email, :value => params[:dobra_ksiazka] %>


Hasło:<%= f.password_field :password %>


<%= f.check_box :remember %> zapamietaj mnie


<%= submit_tag ‘Zaloguj’ %>


<% end %>[/code]

Dla wszystkich parametrów które są powiązane z obiektem user nie musisz ustawiać wartości, jak to zrobiłeś przy polu email czyli
fragment :value => params[:email]
możesz usunąć, railsy same ustawią wartość.

Co do pól niezwiązanych z obiektem user to w twoim przypadku powinienes użyć metody text_field_tag a nie f.text_field

<p><label>Dobra książka:</label><%= text_field_tag "dobra_ksiazka", @dobra_ksiazka  %></p>

a w kontrolerze dodatkowo

@dobra_ksiazka = params[:dobra_ksiazka]

polecam też poczytanie jakiejś mądrej ksiązki do railsów, bo to o co pytasz to taka podstawowa wiedza

Dzięki działa. Co do książek to przeczytałem kilka ale takich i innych szczegółów nie było

Mozesz ustawic w modelu

model User < ActiveRecord::Base attr_accessor :dobra_ksiazka end
i w widoku piszesz

<%= f.text_field :dobra_ksiazka %>

Zaleta tego rozwiazania jest to ze na pole ‘dobra_ksiazka’ mozesz zalozyc walidacje np.:

model User < AcrtiveRecord::Base attr_accessor :dobra_ksiazka validates_presence_of :dobra_ksiazka end