How to re-construct ActiveRecord from yaml

My controller rm_grants_controller.rb snip:
class RmGrantsController < ApplicationController
  def dump
    File.open('db/backup/rm_grants.yaml', 'w') { |f| f.puts
RmGrants.find(:all).to_yaml }
  end
end

This creates 'db/backup/rm_grants.yaml' whose content look like

My controller rm_grants_controller.rb snip:
class RmGrantsController < ApplicationController
def dump
   File.open('db/backup/rm_grants.yaml', 'w') { |f| f.puts
RmGrants.find(:all).to_yaml }
end
end

This creates 'db/backup/rm_grants.yaml' whose content look like
---
- !ruby/object:RmGrant
attributes:
   key1: value1
   key2: value2
   key3: value3
attributes_cache: {}

- !ruby/object:RmGrant
attributes:
   key1: value1
   key2: value2
   key3: value3
attributes_cache: {}

I'm guessing that this code has been slightly edited from what's
actually in your app. Please be careful when you do this as errors
produced (or omitted) in the process (the code above contains several
typos and so) can make things very confusing.

I'm guessing you just want to dump the object attributes (ie the
database attributes). An active record object contains some other
instance variables that track a bunch of stuff, so you're not dumping
quite what you want, so you probably want something like

RmGrant.find(:all).collect {|record| record.attributes}.to_yaml

Now, I want to reconstruct ActiveRecord from the yaml file, so in
rm_grants_controllers.rb
def load
records = YAML.load_file('db/backup/rm_grants.yml')
records.each do |record|
   @rm_grant = RmGrant.new(params[record])
   @rm_grants.save!
end
end

I'm not entirely sure what you were thinking here. Why are you using
params at all?
This should just be @rm_grant = RmGrant.new(record) (assuming you've
made the change I suggested above)

Fred