新手问题 关于一个 model 的怪问题

a4652097 · 2018年04月14日 · 最后由 a4652097 回复于 2018年04月14日 · 1117 次阅读

这是我的 model

class Equipment::Accepting < ApplicationRecord
end

这是我的 controller

class Api::App::Equipment::AcceptingsController < Api::App::ApplicationController
end

当我在我的 controller 里调用 Equipment::Accepting 时,会告诉我

=>NameError: uninitialized constant Api::App::Equipment::AcceptingsController::Equipment

然后我试着在 console 里调用 Equipment::Accepting

=>Equipment::Accepting (call 'Equipment::Accepting.connection' to establish a connection)

成功了。然后我试着创建一些新的 model,然后在 controller 里调用 Approval::Flow

=> Approval::Flow(id: integer, apply_id: integer, timestamp: datetime, to_id: integer, message: string, pass: boolean, is_sync: boolean, code: string, created_at: datetime, updated_at: datetime)

很奇怪的一个问题,尝试了许多办法。能给我指点一下的话,不胜感激。

::Equipment::Accepting 在 controller 里面写的时候

awking 回复
=> Equipment::Accepting(Table doesn't exist)

表不存在

model 也可以使用 namespace 吗,那对应的表名应该是什么样的?可以尝试指定表名

a4652097 回复

::Equipment::Accepting 已经解决了常量查找的问题。

tables not exist 是说数据库中不存在名字叫 Accepting 的表,你应该看看数据库表的名字是什么,对应改变 model 的名字。或者在 model 中写

self.table_name = "你的表名"
zhuoerri 回复

十分感谢,虽然到现在还不清楚到底是什么原因导致的这个问题,但是在 model 里设置好表名,然后::Equipment::Accepting 就行了。

a4652097 关闭了讨论。 04月14日 21:10
需要 登录 后方可回复, 如果你还没有账号请 注册新账号