我正在通过创建分类引擎来尝试Rails引擎,用户可以在其中查看/发布/回复分类广告。

主应用程序包含用户身份验证和配置文件的代码,而我创建的引擎将处理分类功能。

现在我想为分类引擎添加一些示例数据到数据库。所以我在'vendor / plugins / classifieds / lib / tasks'中创建了一个名为'sample_classifieds_data.rake'的rake文件,并在'vendor / plugins / classifieds / lib / tasks / sample_classifieds_data'中添加了yml文件

rake文件的代码和示例yml文件可在此处找到: http://gist.github的.com / 216776

现在的问题是,当我运行rake任务时,没有抛出任何错误,但是数据库中没有填充值。

有什么想法吗?顺便说一句,它是开发环境,数据库是开发数据库。

我运行了一个类似的rake任务来填充数据库中的样本用户。 rake文件'sample_data.rake'的位置位于'lib / tasks'。

有帮助吗?

解决方案

你的任务看起来不错。关于唯一会导致您的任务无提示失败的事情是您传递给Fixture.new的文件不指向yml或csv文件。

通过修改put语句来打印导入文件的完整路径,并将其打印内容与目录结构进行比较,进行仔细检查。

例如,如果你的夹具文件以大写字母开头,事情会无声地失败? Categories.yml而不是categories.yml

其他提示

在rails edge中,您可以使用 rake db:seed 功能将数据添加到基础。 查看提交

使用非常简单。

创建 db / seeds.rb 文件。
并将您想要的任何代码放入其中。

例如:

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

当您想要为数据库设定种子时,可以执行 rake db:seed

如果出于任何原因,您不希望使用edge(在生产环境中可以理解),您可以使用 Seed Fu 插件,这对你来说非常有用。

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

http://weblog.rubyonrails .ORG / 2009/9/4 /红宝石上导轨-2-3-4

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top