网站开发中,数据库经常会变化,一些测试数据重复输入的话会非常麻烦,这时候就可以rake db:seed来进行一些数据的初始化,其会调用db/seeds.rb这个文件,实例说明之.
1.新建Model,名称为Blog
执行rails g model Blog content:string created:datetime title:text
会新建一个app/models/Blog.rb,内容如下:
class Blog < ActiveRecord::Base
attr_accessible :content, :created, :title
end
2.打开db/seeds.rb文件,添加如下语句:
#encoding: utf-8
t=Time.now
# Blog.create(:Title=>"中文第一版",:Created=>t,:Content=>"真实的中文第一版")
#错误的初始化,会让rake db:seed报如下错误:
# rake aborted!
# Can't mass-assign protected attributes: title, created, content
# Blog.create(:title=>"中文第一版",:created=>t,:content=>"真实的中文第一版")
Blog.create({:title=>"中文第一版",:created=>t,:content=>"真实的中文第一版"})
Blog.create({:title=>"中文第二版",:created=>t,:content=>"中华人民共和国"})
#如果需要时间,直接写就是,不用加上#{},其表示的是个字符串
# Blog.create({:title=>"中文第三版",:created=>#{Time.now},:content=>"中华人民共和国"})
Blog.create({:title=>"中文第三版",:created=>Time.now,:content=>"中华人民共和国"})
3.执行rake db:seed
然后运行rails s,在浏览器里面输入http://192.168.1.107:3000/blogs
如图:
证明seeds.rb中的数据便保存到了db/development.sqlite3这个数据库文件中.