rails读取文件并存储数据库

时间:2011-02-24 04:53:46

标签: ruby-on-rails

       i saved  .rb file in app/component/text.rb. i want to read and store the database.

在那个文件中有5行,我的表也有5行。我想逐行保存。你可以理解我的问题。我使用mysql数据库。

  please help me....

感谢, 金斯敦。

1 个答案:

答案 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的记录。