not quite the routes you are providing are not equivalent to what I
wanted to archive and they are the only routes in the routing file for
this test. What I want is:

GET /login should be resolved to session#new
POST /login should be resolved to session#create

possible ways of doing so are according to the action_dispatch/
routing.rb file

get 'login' => 'session#new'
post 'login' => 'session#create', :as => :login

or when using match

match 'login' => 'session#new', :via => :get
match 'login' => 'session#create', :via => :post

the above two examples are equivalent since get and post just add
the :via => :method to the options and call match

class Session < ActiveRecord::Base
  # include ActiveModel::Validations

  attr_accessor :login, :password #, :id

end

On Feb 20, 7:02 pm, Conrad Taylor <[email protected]> wrote:
> On Sat, Feb 20, 2010 at 4:00 PM, Conrad Taylor <[email protected]> wrote:
> > On Sat, Feb 20, 2010 at 3:02 PM, Daniel Guettler <
> > [email protected]> wrote:
>
> >> Hi, I just ran into this ActionController::RoutingError and just
> >> wanted to check if someone can confirm this as a bug in the Rails 3
> >> beta gem.
>
> >> config/routes.rb contains:
>
> >>  get   'login'     => 'session#new'
> >>  post  'login'     => 'session#create',  :as => :login
>
> > Daniel, can you post the complete route?  The 'get' and 'post' HTTP verbs
> > should exist within a member or collection block of a resource block.  For
> > example,
>
> > resources :posts do
> >    collection do
> >       get :search
> >    end
> > end
>
> > or
>
> > resources :posts do
> >   get :search, :on => :collection
> > end
>
> > Note:  both of the examples are equivalent.
>
> > Next, your routes look ambiguous meaning that you could have easily
> > implemented this as follows:
>
> > match 'login' => "user_sessions#lnew",     :as => :login
>
> Correction:  match 'login' => "user_sessions#new",     :as => :login
>
>
>
> > match 'login' => "user_sessions#destroy", :as => :logout
>
> > Lastly, your URLs will look like the following:
>
> >http://localhost:3000/logout
> >http://localhost:3000/login
>
> > Good luck,
>
> > -Conrad
>
> >> GET /login works fine:
>
> >> Started GET "/login" for 127.0.0.1 at 2010-02-20 17:45:49
> >>  SQL (0.3ms)  SET SQL_AUTO_IS_NULL=0
> >>  Processing by SessionController#new as HTML
> >> Rendered session/new.html.haml within layouts/application.html.haml
> >> (77.9ms)
> >> Completed in 85ms (Views: 84.1ms | ActiveRecord: 0.2ms) with 200
>
> >> However POST /login gives the following error:
>
> >> Started POST "/login" for 127.0.0.1 at 2010-02-20 17:45:58
> >>  SQL (0.3ms)  SET SQL_AUTO_IS_NULL=0
>
> >> ActionController::RoutingError (No route matches "/login"):
>
> >> rake routes returns the expected urls:
>
> >>       login POST   /login
> >> {:controller=>"session", :action=>"create"}
> >>             GET    /login
> >> {:controller=>"session", :action=>"new"}
>
> >> Thanks, Daniel
>
> >> --
> >> 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 [email protected].
> >> To unsubscribe from this group, send email to
> >> [email protected]<rubyonrails-talk%2Bunsubscrib
> >>  [email protected]>
> >> .
> >> For more options, visit this group at
> >>http://groups.google.com/group/rubyonrails-talk?hl=en.

-- 
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 [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/rubyonrails-talk?hl=en.

Reply via email to