Rails - 如何引用另一个模块中的类

时间:2012-10-08 01:33:25

标签: ruby-on-rails ruby ruby-on-rails-3

如果我有一个继承自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)

2 个答案:

答案 0 :(得分:4)

产品是模型的名称吗?

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

::Product

这样ruby将不会首先搜索当前的模块上下文

答案 1 :(得分:2)

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

我认为你可能会感到困惑,而你的模型类实际上是Product而不是Products,至少你应该如何通过对流来命名它