1

嘿,我正在创建一个rails 3 引擎并尝试访问正在安装引擎的应用程序中的模型。

module MyEngine
  class UsersController < ApplicationController

    def index
      @users = User.all
    end

如果我调用以下内容,那么它会给我错误:

找不到表'my_engine_users' - 如果模型在引擎内部,它会自动查找将存在的命名空间版本,但在这种情况下,它是在使用引擎的应用程序中定义的。

如果我调用 ::User.all 而不是 User.all 那么一切正常,但它看起来有点奇怪。这是有效的红宝石还是有更好的方法来获取对象?

4

1 回答 1

0

因此,如果我的问题正确,您的引擎中有一个模型,看起来像这样:

module MyEngine
  class User
  end
end

如果上面的假设是正确的,你可以table_name= 在模型中设置表名

module MyEngine
  class User
    self.table_name = 'users'
  end
end
于 2012-08-27T11:30:33.173 回答