【问题标题】:My VPS running on Ubuntu using Nginx Crashed and wont run again我使用 Nginx 在 Ubuntu 上运行的 VPS 崩溃并且不会再次运行
【发布时间】:2018-02-18 12:12:17
【问题描述】:

我是设置 VPS 的新手。

今晚早些时候,我使用 Ubuntu、Postgresql、Nginx、Passenger 设置了一个 VPS。

一直很顺利,直到APP崩溃,现在我刷新页面时总是收到Sorry, something went wrong msg。

我已经使用sudo service nginx restart 重新启动了 NginX 我也重启了postgresql

我也一次又一次地deployed该应用程序,但没有运气。

production.log

有这样的消息:

NoMethodError (undefined method '+' for nil:NilClass):
app/controllers/application_controller.rb:101:in `each'
app/controllers/application_controller.rb:101:in `reduce'
app/controllers/application_controller.rb:101:in `users_stats'

现在这个错误总是出现。即使在所有重新启动之后。

更新

这是代码,我设法通过在控制器中注释它并再次部署来使其工作。

all_users_truck_use = User.joins(:transports).where(transports: { transport_type: ['Truck / Lorry', nil] } ).pluck(:transport_km).reduce(:+)
 @all_users_Truck_co2 = all_users_truck_use.nil? ? 0 : all_users_truck_use * @Truck.to_f

服务器是否存在某种循环? 我在这里真的很绝望,我需要在星期一早上交付这个项目。

提前致谢

【问题讨论】:

  • 请特别向我们展示您的app/controllers/application_controller.rb 文件-101 周围的代码。提示第 101 行中的代码会引发错误,因为它试图在 nil 上调用 add (+)。
  • 请看我的更新@spickermann

标签: ruby-on-rails ruby postgresql ubuntu nginx


【解决方案1】:

错误消息NoMethodError (undefined method '+' for nil:NilClass) 告诉您您尝试在nil 上调用+。如果您执行 nil + 1 之类的操作,则会发生该错误,而 1 + nil 会引发不同的错误。

我假设以下行(为便于阅读而重新格式化)是您的application_controller.rb 中的101

all_users_truck_use = User
  .joins(:transports)
  .where(transports: { transport_type: ['Truck / Lorry', nil] } )
  .pluck(:transport_km)
  .reduce(:+)

来自reduce的文档:

如果没有显式指定memo的初始值,则collection的第一个元素作为memo的初始值。

这意味着User.joins(:transports).where(transports: { transport_type: ['Truck / Lorry', nil] } ).pluck(:transport_km)返回的第一个元素必须是nil

一个非常简单的解决方案可能是通过在reduce 之前调用compact 从该列表中删除nil 值:

all_users_truck_use = User
  .joins(:transports)
  .where(transports: { transport_type: ['Truck / Lorry', nil] } )
  .pluck(:transport_km)
  .compact
  .reduce(:+)

更好的解决方案可能是添加验证以确保所有数据库记录都具有有效的transport_km 并清理现有记录。或者完全在SQL 中进行计算。如果没有更多信息,很难判断您的数据库架构如何加载、数据来自何处以及该行及其用例的上下文如何。

【讨论】:

    猜你喜欢
    • 2022-09-27
    • 1970-01-01
    • 2018-02-02
    • 2014-09-01
    • 2012-04-24
    • 2020-12-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多