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
,authorize
...新的nil是我们唯一得到的。任何想法都非常赞赏。
EDITS
user.rb(model)
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:用户 资源:用户
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
答案 0 :(得分:1)
对于它的价值,这里有一个与Devise兼容的google_directions版本:https://github.com/calebhaye/google-directions-ruby
答案 1 :(得分:0)
尝试将以下代码添加到应用程序帮助程序
def resource_name
:user
end
def resource
@resource ||= User.new
end
def devise_mapping
@devise_mapping ||= Devise.mappings[:user]
end
答案 2 :(得分:0)
我添加了宝石:
'google_directions'
最近似乎是造成这个问题的原因。
它需要'extlib/hash'
,并且出于某种原因,这与devise
不相称。