2012-12-24 56 views
0

正如标题所示,运行我的本地主机应用时单击“登录”链接时出现以下错误:无路由匹配[GET]“/ signin_path “无法通过Hartl的Rails教程获得“登录”链接。获取:没有路由匹配[GET]“/ signin_path”

下面是一些相关的文件/资料:

在运行时耙路线:

 users GET /users(.:format)   users#index 
     POST /users(.:format)   users#create 
new_user GET /users/new(.:format)  users#new 
edit_user GET /users/:id/edit(.:format) users#edit 
    user GET /users/:id(.:format)  users#show 
     PUT /users/:id(.:format)  users#update 
     DELETE /users/:id(.:format)  users#destroy 
sessions POST /sessions(.:format)  sessions#create 
new_session GET /sessions/new(.:format) sessions#new 
session DELETE /sessions/:id(.:format) sessions#destroy 
signin  /signin(.:format)   sessions#new 
signout DELETE /signout(.:format)  sessions#destroy 
    root  /      static_pages#home 
signup  /signup(.:format)   users#new 
    help  /help(.:format)   static_pages#help 
    about  /about(.:format)   static_pages#about 
contact  /contact(.:format)  static_pages#contact 

配置/ routes文件:

SampleApp::Application.routes.draw do 
resources :users 
resources :sessions, only: [:new, :create, :destroy] 

match '/signin', to: 'sessions#new' 
match '/signout', to: 'sessions#destroy', via: :delete 


root to: 'static_pages#home' 

match '/signup', to: 'users#new' 
match '/help', to: 'static_pages#help' 
match '/about', to: 'static_pages#about' 
match '/contact', to: 'static_pages#contact' 

头部分:

<header class="navbar navbar-fixed-top navar-inverse"> 
    <div class="navbar-inner"> 
    <div class="container"> 
     <%= link_to "Sample App", root_path, id: "logo" %> 
     <nav> 
     <ul class="nav pull-right"> 
      <li><%= link_to "Home",  root_path %></li> 
      <li><%= link_to "Help",  help_path %></li> 
      <% if signed_in? %> 
      <li><%= link_to "Users", '#' %></li> 
      <li id="fat-menu" class="dropdown"> 
       <a href="#" class="dropdown-toggle" data-toggle="dropdown"> 
       Account <b class="caret"></b> 
       </a> 
       <ul class="dropdown-menu"> 
       <li><%= link_to "Profile", current_user %></li> 
       <li><%= link_to "Settings", '#' %></li> 
       <li class="divider"></li> 
       <li> 
        <%= link_to "Sign out", signout_path, method: "delete" %> 
       </li> 
       </ul> 
      </li> 
      <% else %> 
      <li><%= link_to "Sign In", 'signin_path' %></li> 
      <% end %> 
     </ul> 
     </nav> 
    </div> 
    </div> 
</header> 

最后sessesion_controller文件:

类SessionsController < ApplicationController的

def new 
end 

def create 
    user = User.find_by_email(params[:session][:email].downcase) 
    if user && user.authenticate(params[:session][:password]) 
    sign_in user 
    redirect_to user 
    else 
    flash.now[:error] = 'Invalid email/password combination' 
    render 'new' 
    end 
end 

    def destroy 
    end 
end 
+0

预先感谢您! –

回答

0

尝试更新的routes.rb看起来像https://gist.github.com/dd6821926dc94e6587f8

然后改变 <li><%= link_to "Sign In", 'signin_path' %></li>

<li><%= link_to "Sign In", signin_path %></li>

+0

谢谢!只要我看到我有'signin_path',我就知道是这样。 –

相关问题