是否可以在 Rails 中使用 'activerecord-import' gem 作为无模型 table?
Is that Possible to make use of 'activerecord-import' gem for a Model-less table in Rails.?
我想将记录批量插入 table,它没有模型。我确实遵循了 link How to implement bulk insert in Rails 3 .. 除了 'import' 命令之外,一切都很好。因为我没有模型。
我无法为那个 table 创建一个空模型。好吧,我告诉你,为什么我不能为此创建一个 table。我正在使用 IOS apns 服务器来实现推送通知功能。当我配置它时,它在没有模型的情况下在我的数据库中创建了很多 tables。在其中一个 table 中,我想在单个查询中批量插入记录。最初我是用循环做的。它影响了性能。所以,我想进行优化。无论解决方案是什么,请给我任何建议。以下是我的方法。
# Push Notification to all users of the application.
def ios_push_notification(admin_notif)
bulk_data = []
n = Rpush::Apns::Notification.new
n.app = Rpush::Apns::App.find_by_name("ios_app")
ios_user_reg_ids = UserRegId.where(:device_os=>"ios").pluck(:user_gcm_reg_id)
ios_user_reg_ids.each do |device_token|
n.device_token = device_token
n.alert = admin_notif.try(:content)
n.data = { foo: :bar }
bulk_data << n
end
p bulk_data
Rpush::Apns::Notification.import bulk_data # I get error here, since this model does'nt exist.
end
抱歉我的英语不好。提前致谢。
class Rpush::Apns::Notification
def self.import(bulk_data)
sql = ""
until bulk_data.empty?
row = bulk_data.pop
sql.push("(#{row.device_token}, #{row.alert}, #{row.data})")
end
ActiveRecord::Base.connection.execute("INSERT INTO table (device_token, alert, data) VALUES #{sql.join(',')}")
end
end
您的 table 方案未知,因此请在使用前调整列。
我想将记录批量插入 table,它没有模型。我确实遵循了 link How to implement bulk insert in Rails 3 .. 除了 'import' 命令之外,一切都很好。因为我没有模型。
我无法为那个 table 创建一个空模型。好吧,我告诉你,为什么我不能为此创建一个 table。我正在使用 IOS apns 服务器来实现推送通知功能。当我配置它时,它在没有模型的情况下在我的数据库中创建了很多 tables。在其中一个 table 中,我想在单个查询中批量插入记录。最初我是用循环做的。它影响了性能。所以,我想进行优化。无论解决方案是什么,请给我任何建议。以下是我的方法。
# Push Notification to all users of the application.
def ios_push_notification(admin_notif)
bulk_data = []
n = Rpush::Apns::Notification.new
n.app = Rpush::Apns::App.find_by_name("ios_app")
ios_user_reg_ids = UserRegId.where(:device_os=>"ios").pluck(:user_gcm_reg_id)
ios_user_reg_ids.each do |device_token|
n.device_token = device_token
n.alert = admin_notif.try(:content)
n.data = { foo: :bar }
bulk_data << n
end
p bulk_data
Rpush::Apns::Notification.import bulk_data # I get error here, since this model does'nt exist.
end
抱歉我的英语不好。提前致谢。
class Rpush::Apns::Notification
def self.import(bulk_data)
sql = ""
until bulk_data.empty?
row = bulk_data.pop
sql.push("(#{row.device_token}, #{row.alert}, #{row.data})")
end
ActiveRecord::Base.connection.execute("INSERT INTO table (device_token, alert, data) VALUES #{sql.join(',')}")
end
end
您的 table 方案未知,因此请在使用前调整列。