StoreRetroller #index中的ActiveRecord :: StatementInvalid

时间:2011-08-08 17:04:50

标签: ruby-on-rails ruby

所以我在第239页“使用rails 4th ed进行敏捷Web开发”。我的浏览器中有一个指向localhost:3000的选项卡,它工作正常。另一个标签指向“depot.thefonso.com”,我收到此错误:

“StoreController #index中的ActiveRecord :: StatementInvalid”

SQLite3 :: SQLException:没有这样的表:产品:SELECT“products”。* FROM“products”ORDER BY title

Rails.root:/ Users / gideon / Desktop / Rails_work / depot

...

app / controllers / store_controller.rb:7:在`index'

这是store_controller.rb ....中的第7行。

  @products = Product.all

任何宗师都能指出我正确的方向吗?

这是我的database.yml

# SQLite version 3.x
#   gem install sqlite3
  development:
  adapter: sqlite3
  database: db/development.sqlite3
  pool: 5
  timeout: 5000

# Warning: The database defined as "test" will be erased and
# re-generated from your development database when you run "rake".
# Do not set this db to the same as development or production.
 test:
  adapter: sqlite3
  database: db/test.sqlite3
  pool: 5
  timeout: 5000

production:
  adapter: sqlite3
  database: db/production.sqlite3
  pool: 5
  timeout: 5000

2 个答案:

答案 0 :(得分:0)

问题是Rails找不到表,所以如果它在本地工作,很可能只是一个配置问题。

检查database.yml配置,了解depot.thefonso.com上运行的应用程序。它最有可能在localhost上查找数据库,但无法在远程服务器上找到它。

答案 1 :(得分:0)

您是否按照{23}的说明运行了cap deploy:migrations

根据您的症状,您的数据库没有定义Product表。我还会注意到你没有从sqlite3更改为mysql。

请在两台计算机上运行以下命令并比较生成的模式:

sqlite3 db/development.sqlite3 .schema

sqlite3 db/production.db .schema