0
Showing ...views/devise/sessions/new.html.erb where line #3 raised:

undefined method `new' for nil:NilClass
Extracted source (around line #3):

<h2>Sign in</h2>

<%= form_for(resource, :as => resource_name, :url => session_path(resource_name)) do |f| %>
<div><%= f.label :email %><br />
<%= f.email_field :email, :autofocus => true %></div>

中的情况完全相同Registrations,并且实际上我们已经配置了所有设计路线。

目前尚不清楚最近的哪个变化导致了这种情况。

我们已经尝试过:*

  • 项目清单
  • 数据库:重置
  • 重新安装设备
  • 完全重建所有设计模型、路线和表格

它总是同样的错误:

undefined method `new' for nil:NilClass

关于 stackoverflow 的其他问题似乎是针对其他方法的,例如[], new... authorizenew for nil 是我们得到的唯一一个。任何想法都非常感谢。

编辑

user.rb(模型)

class User < ActiveRecord::Base
# Include default devise modules. Others available are:
# :confirmable, :lockable, :timeoutable and :omniauthable
devise :database_authenticatable, :registerable, :recoverable, :rememberable,   :trackable, :validatable

has_many :journeys  # n.b: must pluralize here.
end

路线(用户路线)

user_registration_path   POST    /users(.:format)    devise/registrations#create
PATCH    /users(.:format)    devise/registrations#update
PUT  /users(.:format)    devise/registrations#update
DELETE   /users(.:format)    devise/registrations#destroy
users_path   GET     /users(.:format)    users#index
POST     /users(.:format)    users#create

routes.rb devise_for :admins devise_for :users 资源 :users

get 'journeys', to: 'users#journeys'
resources :journeys

root to: "static#index"

get '/journey/new', to: 'journeys#new'    # For some reason "resources :journeys"  isn't activating the new method.

get '/admins/add_admin', to: 'admins#add_admin'

devise_scope :user do
  get 'users/sign_out', to: 'session#destroy'
  # Don't need to define sign_in here, because it works already (unlike admin).
end

devise_scope :admin do 
  get 'admins/sign_out', to: 'devise/sessions#destroy'
  get 'admins/sign_in', to: 'devise/sessions#new'
end
4

3 回答 3

1

值得一提的是,这里有一个与 Devise 兼容的 google_directions 版本:https ://github.com/calebhaye/google-directions-ruby

于 2014-02-26T04:23:21.973 回答
0

尝试将以下代码添加到您的应用程序助手

  def resource_name
    :user
  end

  def resource
    @resource ||= User.new
  end

  def devise_mapping
    @devise_mapping ||= Devise.mappings[:user]
  end
于 2013-11-07T14:41:10.577 回答
0

我添加了 gem: 'google_directions'最近,这似乎是导致问题的原因。

它需要'extlib/hash'并且由于某种原因这与devise.

于 2013-11-07T16:09:05.423 回答