Ruby on rails 引擎是Rails中的保留字吗?

Ruby on rails 引擎是Rails中的保留字吗?,ruby-on-rails,rails-engines,Ruby On Rails,Rails Engines,我有一个名为Engine的模型,我能够在视图和控制器中使用它而不会出现问题。 当我在模型中使用它时(例如,在回调中,甚至在简单的实例方法中),就会出现问题 我得到错误:NoMethodError:for# 我在网上搜索,但我不认为引擎是一个保留字。请注意,我们在应用程序中使用挂载引擎。我认为您遇到了Ruby范围问题。尝试::Engine而不是Engine-您可能隐含地指的是我认为您使用的一些gem可能定义了classEngine。是否只有车辆型号有问题?否,主机或主应用程序中任何想要引用引擎的型

我有一个名为Engine的模型,我能够在视图和控制器中使用它而不会出现问题。 当我在模型中使用它时(例如,在回调中,甚至在简单的实例方法中),就会出现问题

我得到错误:
NoMethodError:for#


我在网上搜索,但我不认为引擎是一个保留字。请注意,我们在应用程序中使用挂载引擎。

我认为您遇到了Ruby范围问题。尝试
::Engine
而不是
Engine
-您可能隐含地指的是我认为您使用的一些gem可能定义了class
Engine
。是否只有
车辆
型号有问题?否,主机或主应用程序中任何想要引用引擎的型号都有错误。您可以打开rails控制台并尝试
引擎。新建
。。它提供了什么?控制台似乎很好…它只在模型的方法中使用是的,这节省了时间。因此,为了进一步理解,为什么视图和控制器工作,而模型不工作?这有点难以确定,但在某个地方,
引擎
模块/类被包含在模型的包含模块列表中(最有可能通过超类)。追踪那些不太直截了当的地方。若要浏览,请尝试查看您的ModelClass.included_modules并查看范围内的内容
#inside the vehicle model
def add_engines
  Engine.all.each do |ngin|
  ...

end