Ruby on rails Can';“得不到”;“登录”;链接到Hartl'的工作;s Rails教程。获取:没有路径匹配[获取]”/签名“路径”;

Ruby on rails Can';“得不到”;“登录”;链接到Hartl'的工作;s Rails教程。获取:没有路径匹配[获取]”/签名“路径”;,ruby-on-rails,railstutorial.org,Ruby On Rails,Railstutorial.org,正如标题所说,在运行我的localhost应用程序时单击“登录”链接时,我遇到以下错误:没有与[GET]匹配的路由“/signin_path” 以下是一些相关文件/信息: 运行rake路由时: users GET /users(.:format) users#index POST /users(.:format) users#create new_user GET /users/new(.:format)

正如标题所说,在运行我的localhost应用程序时单击“登录”链接时,我遇到以下错误:没有与[GET]匹配的路由“/signin_path”

以下是一些相关文件/信息:

运行rake路由时:

        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
配置/路由文件:

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>

尝试将routes.rb更新为

然后改变

  • 谢谢!当我看到我有一条“围着签名的路”时,我知道就是它。
    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