所以我在第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
答案 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