【发布时间】:2010-10-13 06:45:32
【问题描述】:
cis.statbib.org: script/console
Loading development environment (Rails 2.2.2)
Article.founc>> Article.count()
ActiveRecord::StatementInvalid: Could not find table 'article'
from /home/hadley/web/cis.statbib.org/vendor/rails/activerecord/lib/active_record/connection_adapters/sqlite3_adapter.rb:29:in `table_structure'
from /home/hadley/web/cis.statbib.org/vendor/rails/activesupport/lib/active_support/core_ext/object/misc.rb:39:in `returning'
...
但它似乎确实在数据库中:
db: sqlite3 development.sqlite3
SQLite version 3.2.8
sqlite> select count(*) from author;
168600
我刚刚更新了我所有的宝石等。出了什么问题?
【问题讨论】:
-
它正在寻找文章,但您正在检查作者。
-
对于
Article模型,它应该查找“文章”表。你有没有在任何地方打电话给set_table_name?您的控制台示例查看“作者”表(无论如何应该是“文章”)。 -
糟糕,这只是一个愚蠢的错字。我在文章的 sql 中有一个正数,在控制台中使用 Author.count() 出现同样的错误。
-
那么表名呢?当您使用
Article进行操作时,它通常会查找“文章”。你在用set_table_name吗? -
我正在使用 ActiveRecord::Base.pluralize_table_names = false - 但这应该不是问题,不是吗?我的表名是单数。
标签: ruby-on-rails sqlite