如果我有一个继承自Devise的控制器,并且我想访问Devise之外的模块(例如,如果我有产品型号),我如何在继承自Devise的控制器中访问它?以下内容为我提供了NameError uninitialized constant
:
class RegistrationsController < Devise::RegistrationsController
define foo
Products.find(1)
end
end
class ProductsController < ApplicationController
end
我试过了:
ApplicationController::Products.find(1)
ActiveRecord::Base::Products.find(1)
答案 0 :(得分:4)
产品是模型的名称吗?
如果是这样,您可以使用以下语法访问任何顶级常量
::Product
这样ruby将不会首先搜索当前的模块上下文
答案 1 :(得分:2)
没有必要这样的事情。模型不在任何模块内。
我认为你可能会感到困惑,而你的模型类实际上是Product
而不是Products
,至少你应该如何通过对流来命名它