0

正如标题所说,在运行我的本地主机应用程序时单击“登录”链接时出现以下错误:没有路由匹配 [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>

最后是 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
4

1 回答 1

0

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

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

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

于 2012-12-24T03:32:11.173 回答