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

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

这是我的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)

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

共收到 5 条回复

::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
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册