【发布时间】:2015-05-23 19:55:47
【问题描述】:
我已经开始使用 devise gem 开发一个用于用户注册等的 Web 应用程序。我是 Ruby/Rails 环境的新手。所以这是我训练的一部分。
我的问题和老帖子@devise overriding registrations controller - uninitialized constant Users::RegistrationsController很相似
主页显示后,当我点击注册按钮时,我收到此错误。我在网上对此问题进行了一些研究,但无济于事。
在 app/controllers/users/registrations_controllers.rb 我有这个代码:
class Users::RegistrationsController < Device::RegistrationsController
def create
super do |resource|
if params[:plan]
resource.plan_id = params[:plan]
if resource.plan_id == 2
resource.save_with_payment
else
resource.save
end
end
end
end
end
在 Routes.rb 我有这行代码:
devise_for :users, :controllers => { :registrations => 'users/registrations' }
如果您需要任何其他信息来帮助解决此错误,请告诉我。
【问题讨论】:
-
试试
app/controllers/users/registrations.controllers.rb应该是registrations_controller.rb。重命名文件名 -
不要使用快捷符号
Users::RegistrationsController,而是尝试将其包装在Users模块中:module Users; class RegistrationsController -
@Sontya 实际上我将它作为registrations_controller.rb 而不是registrations.controller.rb 并且它仍然无法正常工作。
-
@janfoeh 我不知道该怎么做,所以如果你能详细说明一下,我将不胜感激......这是我的第一个应用程序,仍在努力理解所有疯狂的术语!
-
第一行还有一个错字:
Device::RegistrationsController
标签: ruby-on-rails devise uninitialized-constant