Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/53.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Rails/designe-NoMethodError(未定义的新方法,带有"会话&"x27;用于"<;类:0x2b2a4e34>;)_Ruby On Rails_Devise_Nomethoderror - Fatal编程技术网

Ruby on rails Rails/designe-NoMethodError(未定义的新方法,带有"会话&"x27;用于"<;类:0x2b2a4e34>;)

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

我遇到了一个非常奇怪的问题,在我的生产环境(FreeBSD/Apache/Passenger/MySQL)上进行测试/错误修复时意外地出现了这个问题:

,使用重新启动应用程序

$ 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