Hi -
I''m using Authlogic for user authentication, and I''m trying to
set up
the login screen (I''m having the same problem with the registration and
other forms, though, but logging in is a nice simple example).
My problem is that the login screen can be accessed through
example.com/login just as I''d like it to be, but when there''s
a problem
with the form input, the url changes to example.com/user_session, which
I really don''t like. If I change the "render :new" in the
controller to
"redirect_to login_path" then I''m sent to the correct url,
but the
rails-generated errors don''t appear, and the information that had been
entered is wiped out, so I don''t want to do that.
I''m using a named url for the login screen:
map.login ''/login'', :controller =>
''user_sessions'', :action => ''new''
map.resource :user_session
My controller looks like:
def new
  @user_session = UserSession.new
end
def create
  @user_session = UserSession.new(params[:user_session])
  if @user_session.save
    flash[:notice] = "You are now logged in"
    redirect_back_or_default account_path
  else
    render :new
  end
end
And a simple view, for now:
<% form_for @user_session, :url => user_session_path do |f| %>
  <%= f.error_messages %>
  <%= f.label :email %><br />
  <%= f.text_field :email %><br />
  <br />
  <%= f.label :password %> - <%= link_to "Forgot Your
Password?",
password_reset_path %><br />
  <%= f.password_field :password %><br />
  <br />
  <%= f.check_box :remember_me %><%= f.label :remember_me %><br
/>
  <br />
  <%= f.submit "Login" %>
<% end %>
There must be a simple solution to this - I''m just learning rails, but
even so I feel like I''m missing something totally obvious. Can anyone
make a suggestion?
-- 
Posted via http://www.ruby-forum.com/.
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"Ruby on Rails: Talk" group.
To post to this group, send email to
rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org
To unsubscribe from this group, send email to
rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org
For more options, visit this group at
http://groups.google.com/group/rubyonrails-talk?hl=en
-~----------~----~----~----~------~----~------~--~---
Nothing? Really? Please? -- Posted via http://www.ruby-forum.com/. --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
Hi Chris, On Thu, 2009-04-02 at 23:31 +0200, Chris Hanks wrote:> Hi - > > My problem is that the login screen can be accessed through > example.com/login just as I''d like it to be, but when there''s a problem > with the form input, the url changes to example.com/user_session, which > I really don''t like. If I change the "render :new" in the controller to > "redirect_to login_path" then I''m sent to the correct url, but the > rails-generated errors don''t appear, and the information that had been > entered is wiped out, so I don''t want to do that.I''m not sure about the latest versions of RESTful routing but it used to be easy enough to pass the params hash along to the redirected_to method. redirect_to :action => ''redirected_to_method'', :form_data => params[:form_data] As a first cut I''d try: redirect_to login_path, :form_data => params[:form_data] Not sure about the error messages. HTH, Bill --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
Thanks, Bill.
I actually stumbled across another technique, which I adapted from some 
code I found in Lovd By Less (http://lovdbyless.com)
Here''s how it works for the new user form:
Routes:
  map.connect ''/join'', :controller =>
''users'', :action => ''new''
Form tag:
  <% form_for @user, :url => ''/join'', :method =>
:post do |f| %>
Controller
  def new
    @user = User.new(params[:user])
    return unless request.post?
    if @user.save
      flash[:notice] = "Account registered!"
      redirect_back_or_default account_url
    else
      render :action => :new
    end
  end
I''ve only played with it a little bit so far, but it seems to do 
everything I need, in less code than the scaffolding I was working with, 
and I haven''t found a downside yet. I kind of like it.
bill walton wrote:> Hi Chris,
> 
> On Thu, 2009-04-02 at 23:31 +0200, Chris Hanks wrote:
>> Hi -
>> 
>> My problem is that the login screen can be accessed through
>> example.com/login just as I''d like it to be, but when
there''s a problem
>> with the form input, the url changes to example.com/user_session, which
>> I really don''t like. If I change the "render :new"
in the controller to
>> "redirect_to login_path" then I''m sent to the
correct url, but the
>> rails-generated errors don''t appear, and the information that
had been
>> entered is wiped out, so I don''t want to do that.
> 
> I''m not sure about the latest versions of RESTful routing but it
used to
> be easy enough to pass the params hash along to the redirected_to
> method.
> 
> redirect_to :action => ''redirected_to_method'',
:form_data =>
> params[:form_data]
> 
> As a first cut I''d try:
> redirect_to login_path, :form_data => params[:form_data]
> 
> Not sure about the error messages.
> 
> HTH,
> Bill
-- 
Posted via http://www.ruby-forum.com/.
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"Ruby on Rails: Talk" group.
To post to this group, send email to
rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org
To unsubscribe from this group, send email to
rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org
For more options, visit this group at
http://groups.google.com/group/rubyonrails-talk?hl=en
-~----------~----~----~----~------~----~------~--~---