Mysql Rails 4脚本+;错误:将数据从一个表迁移到另一个表

Mysql Rails 4脚本+;错误:将数据从一个表迁移到另一个表,mysql,ruby-on-rails,ruby,ruby-on-rails-4,Mysql,Ruby On Rails,Ruby,Ruby On Rails 4,我创建了一个脚本,我想用它在另一个数据库中填充一个新表,因为我正在将这个表从一个DB(表1)移动到另一个DB(表2)。我已经在新DB(DB_2)中创建了“new_geo_fence”表,并希望在下面运行脚本以在上面迁移数据。脚本如下: class NewGeoFence < ActiveRecord::Base attr_accessible :name, :address, :latitude, :longitude, :radius, :customer_id belon

我创建了一个脚本,我想用它在另一个数据库中填充一个新表,因为我正在将这个表从一个DB(表1)移动到另一个DB(表2)。我已经在新DB(DB_2)中创建了“new_geo_fence”表,并希望在下面运行脚本以在上面迁移数据。脚本如下:

class NewGeoFence < ActiveRecord::Base
attr_accessible :name, :address, :latitude, :longitude, :radius, :customer_id

      belongs_to :customer, :foreign_key => 'customer_id'
    end

require 'rubygems'

GeoFence.all.each do |g|
  gf = NewGeoFence.new(
    :id => g.id,
    :name => g.name,
    :address => g.address,
    :latitude => g.latitude,
    :longitude => g.longitude,
    :radius => g.radius,        
    :created_at => g.created_at,
    :updated_at => g.updated_at, 
    :customer_id => g.customer_id
  )
  gf.save
end
运行此脚本时,我错过了什么


谢谢

在一个类上调用每个类,而在一个对象数组上调用它,所以

GeoFence.all.each do |g|

Rails 4要求在进行质量分配时将参数列为白名单。为此,请使用强参数

GeoFence.all.each do |g|
  params = ActionController::Parameters.new({
    geofence: {
      id: g.id,
      name: g.name,
      address: g.address,
      latitude: g.latitude,
      longitude: g.longitude,
      radius: g.radius,        
      created_at: g.created_at,
      updated_at: g.updated_at, 
      customer_id: g.customer_id
     }
  })
  gf = NewGeoFence.new(params.require(:geofence).permit!)
  gf.save
end
GeoFence.all.each do |g|
  params = ActionController::Parameters.new({
    geofence: {
      id: g.id,
      name: g.name,
      address: g.address,
      latitude: g.latitude,
      longitude: g.longitude,
      radius: g.radius,        
      created_at: g.created_at,
      updated_at: g.updated_at, 
      customer_id: g.customer_id
     }
  })
  gf = NewGeoFence.new(params.require(:geofence).permit!)
  gf.save
end