i saved .rb file in app/component/text.rb. i want to read and store the database.
在那个文件中有5行,我的表也有5行。我想逐行保存。你可以理解我的问题。我使用mysql数据库。
please help me....
感谢, 金斯敦。
答案 0 :(得分:0)
我错过了rails-ruby版本,您使用的操作系统以及明确的问题描述......无论如何
假设您的意思是您的数据库有5个字段,并且您想要将记录读写到文件中:
假设该文件将包含模型“Apple”的记录,其中包含字段id,title和description。
从文件中读取新的Apple:
indexes = [:id, :title, :desc].reverse # be careful the data will be saved reverse because pop takes the last element first
record_params = {}
handle = File.open("Apple.record","r")
handle.lines.each do |line|
record_params[indexes.pop]=line.chomp #use chomp to get rid of the trailing \n
end
handle.close
Apple.create!(record_params)
将ID为7的Apple写入文件
indexes = [:id, :title, :desc]
record = Apple.find(7)
to_save = indexes.map{|i| record.send i}
handle = File.open("Apple.record","w")
handle.write(to_save.join("\n"))
handle.close
如果有可能,请注意逃避数据中的换行符。
无论如何,使用YAML会更容易:
#write the first apple to the file
handle = File.open("Apple.record", "w")
handle = Apple.first.to_yaml
handle.close
#read the file to a new record
record_params = YAML.load File.read("Apple.record")
Apple.create!(record_params)
所有这些都在Rails 3中有效,但请记住,您也要保存id,因此保存和加载会导致id更改,因为已存在具有给定ID的记录。