Нет ошибки маршрута из учебника по Ruby on Rails Майклом Хартлом, глава 8
Я изучаю Ruby на рельсах Майкла Хартла. Я застрял в разделе 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
На рисунке 8.5 на рисунке показан URL для входа в систему: http://localhost:3000/sessions. Когда я перехожу на эту страницу,
Я всегда получаю
Routing Error
No route matches [GET] "/sessions"
решена
Рисунок 8.5 показывает страницу после того, как вы нажмете кнопку "Создать", и URL изменится с /sessions/new
или же /signin
в /sessions
, Так что нет ничего плохого с моими выше файлами.
1 ответ
Я думаю, что это опечатка. Вы должны Naviagte к http://localhost:3000/sessions/new
как указано в ваших маршрутах.