Hey Niels,

Thank you for excellent guidance. I read about routing but it's taking
me a long time to actually internalize this stuff.  Your analysis
gives me hope!

Best wishes,
Richard

On Jul 5, 10:42 pm, Niels Meersschaert <[email protected]> wrote:
> map.resources creates routes for the typical CRUD operations.  Since you are 
> adding an additional operation, you could revise your mapping to this:
>
> map.resources :users, :collection => {:sign_in => :get}
>
> This creates awkward route names & feels ugly as you are mucking with a 
> resource controller's routes.  It's probably better to do:
>
> map.sign_in "/sign_in", :controller => "users", :action => "sign_in"
>
> However, as logging in is really a session issue, rather than a user concern, 
> it would be even better to do something like this:
>
> map.sign_in "/sign_in", :controller => "sessions", :action => "new"
>
> Then move your sign_in method from users_controller to sessions_controller
>
> You will want a file like /path_to_controller_views/sign_in.html.erb to 
> handle it (assuming you are using erb).  Replace path_to_controller_views 
> with either /app/views/users or /app/views/sessions as appropriate.
>
> Niels
>
> On Jul 5, 2010, at 10:02 PM, RichardOnRails wrote:
>
> > I've got the following in config\routes.rb:
> > map.resources :users
>
> > In app\views\shared\_menu.erb, I've got:
> > Please sign in <%=  link_to
> > "here", :controller=>"user", :action=>"sign_in" -%>
>
> > In app\controllers\users_controller.rb
> >  def sign_in
> >  end
>
> > When I run the application,  I crash with:
> > Routing Error
> > No route matches "/user/sign_in" with {:method=>:get}
>
> > I presume I should add "def sign_in; [snip]; end" somewhere in:
> > app\views\users
>
> > But where, so as to satisfy the Rails routing scheme?
> > Is sufficient information provided above to answer this question?
> > I'm running Rails 2.3.5
>
> > Thanks in Advance,
> > Richard
>
> > --
> > 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 
> > athttp://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