Ruby on rails Rails/designe-NoMethodError(未定义的新方法,带有"会话&"x27;用于"<;类:0x2b2a4e34>;)
我遇到了一个非常奇怪的问题,在我的生产环境(FreeBSD/Apache/Passenger/MySQL)上进行测试/错误修复时意外地出现了这个问题: ,使用重新启动应用程序Ruby on rails Rails/designe-NoMethodError(未定义的新方法,带有"会话&"x27;用于"<;类:0x2b2a4e34>;),ruby-on-rails,devise,nomethoderror,Ruby On Rails,Devise,Nomethoderror,我遇到了一个非常奇怪的问题,在我的生产环境(FreeBSD/Apache/Passenger/MySQL)上进行测试/错误修复时意外地出现了这个问题: ,使用重新启动应用程序 $ touch tmp/restart.txt ,尝试以新用户身份注册,然后在日志文件中看到不愉快的错误页面和NoMethodError报告。我没有更改models/user.rb文件中的designe部分(好的,我更改了,但之后我重新启动了应用程序,一切都很好) 以下是我的型号/user.rb设备部分: devise
$ touch tmp/restart.txt
,尝试以新用户身份注册,然后在日志文件中看到不愉快的错误页面和NoMethodError报告。我没有更改models/user.rb文件中的designe部分(好的,我更改了,但之后我重新启动了应用程序,一切都很好)
以下是我的型号/user.rb设备部分:
devise :database_authenticatable, :registerable
我确信这是一个悲惨的问题,可能是其他东西的错误类型,一个非常小的讨厌的错误,但我无法想象它会是什么。。。我已经找了两天了,不知道还能去哪里找。请大家帮忙
我已经尝试了以下方法:
- 返回到db/schema.rb的上一版本,并重置db李>
- 降级到整个rails应用程序的前一版本李>
- 将app/controllers/registrations\u controller.rb移动到app/controllers/designe 和应用程序/控制器/注册目录李>
- 将设计创业板评级从1.1.7下调至1.1.2李>
- 重启乘客、Apache和整个FreeBSD李>
- 查看/var/log/httpd.log和/var/log/httpd_error.log文件李>
- 重新创建数据库李>
- 检查并重新创建MySQL用户和授权李>
- 束更新李>
非常感谢您提前提供的任何信息 我将整个应用程序目录的所有者更改为www
$ chown -R www data
(但当时没有帮助)
然后,更新之前降级(在bug搜索期间)的design,使用
$ bundle update
然后一切都起了作用。我认为(尽管我不理解为什么)文件的所有者应该与httpd进程的所有者是同一个所有者(请参见$ps aux | grep httpd
)
希望它能帮助别人对于任何经历过这种痛苦的人,你有可能像我一样愚蠢,忘记了包括:
# app/models/user.b
devise :registerable
在你的模型中
$ bundle update
# app/models/user.b
devise :registerable