【问题标题】:No Route error from Ruby on Rails Tutorial by Michael Hartl chapter 8 [closed]Michael Hartl 第 8 章的 Ruby on Rails 教程中没有路由错误 [关闭]
【发布时间】:2012-04-27 14:17:50
【问题描述】:

我正在研究 Michael Hartl 的 Ruby on rails。我被困在8.1.4 部分,它使用 Rails 3.2.3 和 Ruby 1.9.3-p125 实现登录页面。

我创建了一个会话控制器,我希望我的会话控制器的 create 操作映射到此路由 /sessions ,但总是出现路由错误。有什么线索吗?以下是我的相关文件:

routes.rb

SampleApp::Application.routes.draw do

  resources :users
  resources :sessions, only: [:new, :create, :destroy]

  root to: 'static_pages#home'

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

  match '/help',    to: 'static_pages#help'
  match '/about',   to: 'static_pages#about'
  match '/contact', to: 'static_pages#contact' 
end

还有我的rake routes

      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
       root        /                         static_pages#home
     signup        /signup(.:format)         users#new
     signin        /signin(.:format)         sessions#new
    signout DELETE /signout(.:format)        sessions#destroy
       help        /help(.:format)           static_pages#help
      about        /about(.:format)          static_pages#about
    contact        /contact(.:format)        static_pages#contact

我的app/views/sessions/new.html.erb

  <%= provide(:title, 'Sign in') %>
  <h1>Sign in</h1>

 <div class="row">
 <div class="span6 offset3">
   <%= form_for(:session, url: sessions_path) do |f| %>

     <%= f.label :email %>
     <%= f.text_field :email %>

     <%= f.label :password %>
     <%= f.password_field :password %>

     <%= f.submit "Sign in", class: "btn btn-large btn-primary" %>
   <% end %>

   <p>New user? <%= link_to "Sign up now!", signup_path %></p>
 </div>

我的会话控制器:

class SessionsController < ApplicationController
  def new
  end

  def create
    render 'new'
  end

  def destroy
  end
end

figure 8.5中的图片显示登录的url是http://localhost:3000/sessions。当我导航到该页面时,

我总是得到一个

Routing Error
    No route matches [GET] "/sessions"

解决了

图8.5是点击创建按钮后的页面,url从/sessions/new/signin变为/sessions,所以我上面的文件没有问题。

【问题讨论】:

  • 您可以添加您的解决方案作为答案。

标签: ruby-on-rails ruby-on-rails-3.2 railstutorial.org


【解决方案1】:

我认为这是一个错字。您必须按照路线中的指示导航到 http://localhost:3000/sessions/new

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-06-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多