Ive были следующие несколько рельсов направляющие и им пытаются в настоящее время реализовать что-то на мой собственный для проекта им делать и врезался в препятствие на первое препятствиеNoMethodError новичок Rails
Я получаю эту ошибку при попытке загрузить страница
ActionController :: UrlGenerationError в StepOne # Войти Показаны /Users/rogan/Sites/authImp/app/views/step_one/login.html.erb где строка # 3 поднял:
нет соответствующего маршрута {: action => "show",: controller => "step_one"} отсутствуют необходимые ключи: [: id] Извлеченный источник (вокруг линии # 3):
<%= form_for url: step_one_path do %>
form stuff...
тогда мой step_one_controller.rb
class StepOneController < ApplicationController
def new
end
def create
user = User.authenticate(params[:email], params[:password])
if user
pincode = generatePin
puts "one use pin.#{pincode}"
redirect_to "step_two"
else
flash.now.alert = "Invalid email or password"
render "new"
end
end
end
это адаптер из системы авторизации я видел в руководстве, которое используется SessionsController.rb и form_for URL: sessions_path
но мои простые изменения, похоже, сломали его, я тоже посмотрел на свои маршруты, и все они выглядят в порядке
Редактировать: heres is my routes править править: все изменилось к step_one и извлекал «S» как это было предложено, я теперь получить
NoMethodError in StepOne#login
undefined method `model_name' for Hash:Class
<%= form_for url: step_one_path do %>
так от одной задачи к другой!
AuthImp::Application.routes.draw do
resources :users
resources :sessions
resource :step_one
get "users/:id" => "users#show"
get "sign_up" => "users#new"
get "log_in" => "step_one#login"
get "step_two" => "sessions#new"
get "log_out" => "sessions#destroy", :as => "log_out"
тогда мои грабли маршруты следующего
root to: "welcome#index"
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
PATCH /users/:id(.:format) users#update
PUT /users/:id(.:format) users#update
DELETE /users/:id(.:format) users#destroy
sessions GET /sessions(.:format) sessions#index
POST /sessions(.:format) sessions#create
new_session GET /sessions/new(.:format) sessions#new
edit_session GET /sessions/:id/edit(.:format) sessions#edit
session GET /sessions/:id(.:format) sessions#show
PATCH /sessions/:id(.:format) sessions#update
PUT /sessions/:id(.:format) sessions#update
DELETE /sessions/:id(.:format) sessions#destroy
step_one POST /step_one(.:format) step_ones#create
new_step_one GET /step_one/new(.:format) step_ones#new
edit_step_one GET /step_one/edit(.:format) step_ones#edit
GET /step_one(.:format) step_ones#show
PATCH /step_one(.:format) step_ones#update
PUT /step_one(.:format) step_ones#update
DELETE /step_one(.:format) step_ones#destroy
GET /users/:id(.:format) users#show
sign_up GET /sign_up(.:format) users#new
log_in GET /log_in(.:format) step_one#login
step_two GET /step_two(.:format) sessions#new
log_out GET /log_out(.:format) sessions#destroy
root GET / welcome#index
Я включил свои маршруты, было бы бессмысленно передавать идентификатор пользователя, который не знает на данный момент времени – rogy
Можете ли вы включить остальные index.htmt.erb? И выход грабли? – dphaener