2009-10-23 64 views
2

我正在嘗試通過創建分類引擎來引導用戶可以查看/發佈/回覆分類的Rails引擎。使用rake for rails引擎添加示例數據到數據庫

主應用程序包含用於用戶身份驗證和配置文件的代碼,同時還有一個我創建的引擎用於處理分類功能。

現在我想添加一些示例數據到分類引擎的數據庫。所以,我在創建一個名爲「sample_classifieds_data.rake」耙文件「供應商/插件/分類/ lib目錄/任務」,我加的YML文件的供應商/插件/分類/ lib中/任務/ sample_classifieds_data「

代碼的rake文件和樣本yml文件可以在這裏找到:http://gist.github.com/216776

現在的問題是,當我運行rake任務時,沒有錯誤被引發,但值不會填充到數據庫中。

任何想法?順便說一下,它是開發環境,數據庫是開發數據庫。

我運行了一個類似的rake任務來填充工作的數據庫中的示例用戶。該rake文件'sample_data.rake'的位置位於'lib/tasks'中。

回答

1

你的任務看起來不錯。關於唯一的事情會導致你的任務失敗默默無聞,你傳遞給Fixture.new的文件不會指向yml或csv文件。

通過修改put語句來雙擊打印它導入的文件的完整路徑,並比較它打印的目錄結構。

例如,如果您的夾具文件以大寫字母開頭,那麼事情會悄然失敗? Categories.yml而不是categories.yml

+0

雅,是我的錯...... :) – 2009-12-08 06:19:20

9

在導軌邊緣,您可以使用rake db:seed功能將數據添加到您的底座。 See the commit

使用非常簡單。

創建一個db/seeds.rb文件。
並把你想要的種子你的數據庫中的任何代碼。

例如:

Category.create!(:name => 'My Category') 
Country.create!(:name => 'Cassoulet Land') 

而當你想要種子數據庫,你可以做一個rake db:seed

如果出於任何原因,你不希望使用邊緣(這將是理解在生產環境中),您可以使用Seed Fu插件,這對您來說確實很有用。

0

在Rails 2.3.4中添加了db:seed任務。所以不需要跑邊。

http://weblog.rubyonrails.org/2009/9/4/ruby-on-rails-2-3-4

+0

我使用的,因爲這個錯誤的Rails 2.3.2:https://rails.lighthouseapp.com/projects/8994/tickets/2948 -exception-a-copy-of-actorscontroller-has-removed-from-the-module-tree-but-is-still-active 所以我不能使用inbuilt db:seed .. :( – 2009-10-26 09:37:21