0

如果我有一个从 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)
4

2 回答 2

4

产品是模型的名称吗?

如果是这样,您可以使用以下语法访问任何顶级常量

::Product

这样 ruby​​ 不会先搜索当前模块上下文

于 2012-10-08T01:36:55.270 回答
2

没有必要这样的事情。模型不在任何模块内。

我认为您可能会感到困惑,并且您的模型类实际上是Product而不是Products至少您应该按约定命名它

于 2012-10-08T01:36:17.327 回答