gpt4 book ai didi

ruby-on-rails - Rails/Devise-NoMethodError(针对#的未定义方法new_with_session')

转载 作者:行者123 更新时间:2023-12-04 05:50:16 25 4
gpt4 key购买 nike

我遇到了一个非常奇怪的问题,该问题在生产环境(FreeBSD / Apache / Passenger / MySQL)的测试/错误修复期间出乎意料地出现了:

$ tail log/production.log

Started GET "/users/sign_up" for 192.168.5.7 at 2011-08-06 21:37:53 +0400
Processing by Devise::RegistrationsController#new as
SQL (1.5ms) SHOW TABLES
Completed in 15ms

NoMethodError (undefined method `new_with_session' for #<Class:0x2b2a4e34>):
app/controllers/registrations_controller.rb:71:in `build_resource'
app/controllers/registrations_controller.rb:8:in `new'


用户管理使用Devise gem进行组织。登录页面可以,注册页面会引发此错误。

一切顺利,直到我更改了数据库中的一个字段(与Devise不相关)(更改了int类型-> bigint),并上传了db / schema.rb和db / migrations / 20110412205837_rename_files.rb。然后我用重置数据库

$ rake db:setup RAILS_ENV='production'


,使用重新启动应用

$ touch tmp/restart.txt


,尝试以新用户身份注册-然后在日志文件中看到该错误页面和NoMethodError报告。我没有更改models / user.rb文件中的devise部分(确定,是的,但是在那之后我也重新启动了应用程序,一切都很好)。

这是我的model / user.rb设计部分:

devise :database_authenticatable, :registerable


我确信这是一个痛苦的问题,也许是其他类型的错误输入,一个非常讨厌的错误,但是我无法想象它会是什么...我已经寻找了两天,但我没有不知道还能去哪里。请大家帮忙!

我已经尝试了以下方法:


返回到先前版本的db / schema.rb,并重置数据库;
降级到整个rails应用程序的先前版本;
将app / controllers / registrations_controller.rb移至app / controllers / devise
和app / controllers / registrations目录;
将Devise gem从1.1.7降级到1.1.2;
重新启动了Passenger,Apache和整个FreeBSD;
在/var/log/httpd.log和/var/log/httpd_error.log文件中查看;
重新创建数据库;
检查并重新创建MySQL用户和授权;
捆绑更新;


没有任何帮助...

我还可以做些什么?为什么会出现此问题?

非常感谢您提前进行任何输入!

最佳答案

对于遭受这种痛苦的其他人,您有可能像我一样愚蠢而忘记了:

# app/models/user.b
devise :registerable


在您的模型中。

关于ruby-on-rails - Rails/Devise-NoMethodError(针对#<Class:0x2b2a4e34>的未定义方法new_with_session'),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6979913/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com