我有一個帶有Backbone.js前端的Rails應用程序。在我的骨幹模型/集的定義,我有一個模型(project.js.coffee.erb)以下Rails在Backbone中引導模型時緩存資源中的舊數據
#############################
## MODEL
#############################
class window.Project extends Backbone.Model
urlRoot: '/projects'
#############################
## COLLECTION
#############################
class window.Projects extends Backbone.Collection
model: Project
url: '/projects'
# initialize new collection
window.projects = new Projects
projects.reset(<%= Project.all.to_json %>)
最後一行就是ERB負載在JSON的所有項目。
當我加載我的應用程序時,此自舉會導致包含舊數據的集合。我知道這是舊的,因爲我已經儘量去爲:
- 刪除我的開發數據庫(sqlite3的)
- 改變我的database.yml,以重命名我的開發數據庫名稱
- 重新運行
rake db:migrate
創建一個全新的.sqlite3數據庫文件
我可以運行sqlite3
,並看到該項目表中不包含任何行,然而,即使重新啓動服務器後,project.js
被編譯成包含集合全現在不存在數據。
Rails的正確靴子納入發展模式,當我運行rails s
:
=> Booting WEBrick
=> Rails 3.2.5 application starting in development on http://0.0.0.0:3000
=> Call with -d to detach
=> Ctrl-C to shutdown server
[2012-07-02 21:24:08] INFO WEBrick 1.3.1
[2012-07-02 21:24:08] INFO ruby 1.9.3 (2012-04-20) [x86_64-darwin11.4.0]
[2012-07-02 21:24:08] INFO WEBrick::HTTPServer#start: pid=11607 port=3000
如果我創建新項目,他們甚至保存到數據庫中。他們也被添加到Backbone集合中。但是,再次,如果我重新加載頁面或者甚至重新啓動服務器,集合將再次填充舊數據。
有人可以幫我弄清楚我在這裏做錯了嗎?