小编Jim*_*701的帖子

Rails 4-故障安全响应期间出错:nil:NilClass的未定义方法“验证”

我们在生产环境中的Webrick服务器上有一个Rails 4应用程序,该应用程序会定期崩溃并返回500错误。崩溃似乎来自以下错误:

Error during failsafe response: undefined method `authenticate' for nil:NilClass
      /usr/local/rvm/gems/ruby-2.1.2/gems/devise-3.2.2/lib/devise/controllers/helpers.rb:58:in `current_user'
Run Code Online (Sandbox Code Playgroud)

我们已经在第58行检查了helpers.rb文件,因此它来自在'current_user'方法中对wardent.authenticate的调用。因此,我们已在Gemfile中导入了宝石“ warden”,但没有任何变化。

我们还尝试将webrick服务器更改为“ puma”服务器,认为它可能来自线程,但没有任何变化。

整个错误如下:

Error during failsafe response: undefined method `authenticate' for nil:NilClass
  /usr/local/rvm/gems/ruby-2.1.2/gems/devise-3.2.2/lib/devise/controllers/helpers.rb:58:in `current_user'
  /usr/local/rvm/gems/ruby-2.1.2/gems/actionpack-4.0.11/lib/abstract_controller/helpers.rb:53:in `current_user'
  /home/dev/myProject/app/views/shared/_top_menu.html.erb:23:in `_app_views_shared__top_menu_html_erb___3475115451092967008_67265400'
  /usr/local/rvm/gems/ruby-2.1.2/gems/actionpack-4.0.11/lib/action_view/template.rb:143:in `block in render'
  /usr/local/rvm/gems/ruby-2.1.2/gems/activesupport-4.0.11/lib/active_support/notifications.rb:161:in `instrument'
  /usr/local/rvm/gems/ruby-2.1.2/gems/actionpack-4.0.11/lib/action_view/template.rb:141:in `render'
  /usr/local/rvm/gems/ruby-2.1.2/gems/actionpack-4.0.11/lib/action_view/renderer/partial_renderer.rb:306:in `render_partial'
  /usr/local/rvm/gems/ruby-2.1.2/gems/actionpack-4.0.11/lib/action_view/renderer/partial_renderer.rb:279:in `block in render'
  /usr/local/rvm/gems/ruby-2.1.2/gems/actionpack-4.0.11/lib/action_view/renderer/abstract_renderer.rb:38:in `block in instrument'
  /usr/local/rvm/gems/ruby-2.1.2/gems/activesupport-4.0.11/lib/active_support/notifications.rb:159:in `block in instrument'
  /usr/local/rvm/gems/ruby-2.1.2/gems/activesupport-4.0.11/lib/active_support/notifications/instrumenter.rb:20:in `instrument'
  /usr/local/rvm/gems/ruby-2.1.2/gems/activesupport-4.0.11/lib/active_support/notifications.rb:159:in `instrument'
  /usr/local/rvm/gems/ruby-2.1.2/gems/actionpack-4.0.11/lib/action_view/renderer/abstract_renderer.rb:38:in `instrument'
  /usr/local/rvm/gems/ruby-2.1.2/gems/actionpack-4.0.11/lib/action_view/renderer/partial_renderer.rb:278:in `render'
  /usr/local/rvm/gems/ruby-2.1.2/gems/actionpack-4.0.11/lib/action_view/renderer/renderer.rb:47:in `render_partial'
  /usr/local/rvm/gems/ruby-2.1.2/gems/actionpack-4.0.11/lib/action_view/helpers/rendering_helper.rb:27:in `render'
  /home/dev/myProject/app/views/layouts/application.html.erb:18:in `_app_views_layouts_application_html_erb__2013404122424653986_65265180'
  /usr/local/rvm/gems/ruby-2.1.2/gems/actionpack-4.0.11/lib/action_view/template.rb:143:in `block in render'
  /usr/local/rvm/gems/ruby-2.1.2/gems/activesupport-4.0.11/lib/active_support/notifications.rb:161:in `instrument'
  /usr/local/rvm/gems/ruby-2.1.2/gems/actionpack-4.0.11/lib/action_view/template.rb:141:in `render'
  /usr/local/rvm/gems/ruby-2.1.2/gems/actionpack-4.0.11/lib/action_view/renderer/template_renderer.rb:61:in `render_with_layout'
  /usr/local/rvm/gems/ruby-2.1.2/gems/actionpack-4.0.11/lib/action_view/renderer/template_renderer.rb:47:in …
Run Code Online (Sandbox Code Playgroud)

authentication devise warden ruby-on-rails-4

5
推荐指数
2
解决办法
4130
查看次数

Rails 4 - capistrano 3不会部署最后一次提交

我们有一个用于带有Apache,Phusion Passenger和Capistrano 3的Rails 4应用程序的生产环境,以及一个远程bitbucket存储库.Capistrano的"上限生产部署"效果很好,并且可以正常执行.但是当我们转到远程服务器上的"current"文件夹并执行"git log"命令时,我们的远程存储库的最后一次提交都没有加载.

我们在我们的应用程序的主文件夹中尝试了"git log",同样的问题.

我们的问题是,我们可以将我们的repo的最后提交加载到生产环境中?卡皮斯特拉诺不是默认做的吗?

知道它可能来自哪里?

以下是我们的Capfile,deploy.rb和deploy/production.rb文件的代码:

Capfile

# Load DSL and Setup Up Stages
require 'capistrano/setup'

# Includes default deployment tasks
require 'capistrano/deploy'


require 'rvm1/capistrano3'
require 'capistrano/bundler'
require 'capistrano/rails/assets'
require 'capistrano/rails/migrations'

# Loads custom tasks from `lib/capistrano/tasks' if you have any defined.
Dir.glob('lib/capistrano/tasks/*.cap').each { |r| import r }

Dir.glob('lib/capistrano/**/*.rb').each { |r| import r }
Run Code Online (Sandbox Code Playgroud)

deploy.rb

lock '3.1.0'

set :application, 'XXXXXXX'
set :deploy_user, 'XXXXXXX'

set :repo_url, 'GIT_REPO_URL.XXXXXXX.git'

set :keep_releases, 5

set :rvm_type, :user
set :rvm_ruby_version, 'ruby-2.1.2'
set …
Run Code Online (Sandbox Code Playgroud)

git capistrano ruby-on-rails

3
推荐指数
1
解决办法
1584
查看次数