通过save方法保留的模型不会出现在sqlite3数据库中。为什么?

时间:2012-06-01 15:40:06

标签: ruby-on-rails-3 sqlite

我是RoR的新手,可能会遗漏一些东西。 你能告诉我什么是错的吗?

单元测试中的TestMethod

测试“创建”做

prices = [12,14,16]
    prices.each {|p| 
        course = Course.new(:name => "j2ee", :price => p)
        course.save!
        puts course.persisted?
    }
#Course.where({:price => 12...17}).all.each do |c|
Course.find_by_price(12) do |c|
    puts c.price
end

运行测试的命令行输出

正在运行测试:


真正
真正
12个
..

像预期的那样。

但为什么db表不包含行?
sqlite3 test.sqlite3
源码>从课程中选择计数(*);
0

这是def。正确的数据库。如果我使用夹具数据,它会正确插入,直到下一个testrun可用。 非常感谢! 干杯 抢劫

1 个答案:

答案 0 :(得分:0)

您的问题没有说明您正在使用的测试框架,但一般来说,测试框架会自行清理,这是礼貌的事情。

你确实说它适用于灯具,所以你无需担心。但是,如果要手动验证持久性是否正常,请打开控制台并输入测试。

prompt$ rails c
> Course.new(:name => "j2ee", :price => 12).save!
> Course.all

控制台打印所有课程。请注意,如果您使用的是bundler(您应该使用它),则可能需要使用“bundle exec rails c”启动控制台。