【Ruby on Rails问题】publish_name.rb文件中定义的变量显示没有定义NameError: uninitialized constant DB_CLASS

简介: 在rails项目中,config/initializers/publish_name.rb文件常用来定义的全局变量、全局常量。但是我们虽然在publish_name.rb文件中定义了常量,但是还是显示没有定义。来看一下解决方法。问题描述:在publish_name.rb文件中定义了变量DB_CLASS

在rails项目中,config/initializers/publish_name.rb文件常用来定义的全局变量、全局常量。但是我们虽然在publish_name.rb文件中定义了常量,但是还是显示没有定义。来看一下解决方法。


问题描述


在publish_name.rb文件中定义了变量DB_CLASS


DB_CLASS = {}


运行项目的时候报错


NameError: uninitialized constant DB_CLASS

问题查看:


先进入控制台,看看常量是否被正确定义了


#输入rails c进入控制台
xuzhaoning@xuchaoningdeMacBook-Air:~/private_data$ rails c
#输入DB_CLASS返回{},说明已经被定义了
[1] pry(main)> DB_CLASS
=> {}


如果控制台中,显示该变量已经被定义,那么我们需要重启项目,如果控制台中就报错NameError: uninitialized constant DB_CLASS那么应该检查一下你的publish_name.rb文件中这个变量是否被正确定义


问题解决:


控制台中显示该变量被定义了,但是运行项目时还是报错,那就应该重启一下项目。先看一下项目是用puma启动的还是unicorn启动的,然后对应杀死进程,重启项目。


1、如果项目直接rails s启动的,那么ctrl + c停止项目,rails s启动项目就可以实现重启。


2、项目是puma启动的(默认)


#查找puma进程
/vagrant/data_system$ ps -axu | grep puma
#系统返回两条信息,第一条是项目的puma进程,第二条是你当前查找动作的进程。
vagrant   2088 50.8  3.7 764332 76048 pts/0    Tl   02:35   0:03 puma 3.12.0 (tcp://0.0.0.0:3000) [data_system]
vagrant   2136  0.0  0.0  10468   916 pts/0    S+   02:35   0:00 grep --color=auto puma
#杀死puma进程
/vagrant/data_system$ kill -9 2088
#启动puma,注意ip地址换成自己项目的ip,-e后面的环境换成你的启动环境
puma -b tcp://192.168.1.233:8882 -e production -d


3、项目是unicorn启动的


#查找unicorn进程
/vagrant/data_system$ ps -axu | grep unicorn
#系统返回两条信息,第一条是项目的unicorn进程,第二条是你当前查找动作的进程。
1001      5475  0.0  0.3 370856 102656 ?       Sl   Jan23   0:04 unicorn_rails master -c ./config/unicorn.rb -D
1001     29178  0.0  0.0  17980   936 pts/5    R+   10:46   0:00 grep unicorn
#杀死unicorn进程
/vagrant/data_system$ kill -9 5475
#启动unicorn
bundle exec unicorn_rails -c ./config/unicorn.rb  -D


现在再运行项目,已经不报错了。

目录
相关文章
|
4月前
|
存储 Ruby
|
4月前
|
Ruby
|
4月前
|
Ruby
|
4月前
|
Ruby
|
5月前
|
存储 Ruby
|
25天前
|
监控 数据可视化 前端开发
使用Ruby on Rails构建的员工上网行为监控Web应用
我们开发了一款基于Ruby on Rails的员工上网行为监控Web应用,帮助企业保护数据安全和确保员工生产力。该应用利用Rails的MVC架构和Active Record管理数据库,通过网络代理和JavaScript追踪员工网络活动。数据收集后,应用进行分析和可视化,以便识别异常行为。此外,借助Rails的后台任务和Sidekiq gem,实现数据自动化处理和定时更新,为公司提供实时监控反馈。
74 2
|
28天前
|
缓存 前端开发 测试技术
框架分析(6)-Ruby on Rails
框架分析(6)-Ruby on Rails
|
4月前
|
Ruby