One project I've been working on has a bunch of remote MySQL databases that we need to attach to (but don't control).
The user specifies columns and we run jobs that insert data into these remote tables. This, of course, generates some really ugly sql, especially when the data you're inserting contains scraped websites.
Most DB drivers have something along the lines of prepare. Of course, it's different for each driver. This is a "just as much as I needed" class that handles inserts for MySQL and PostgreSQL.
ps = PreparedSql.new(ActiveRecord::Base.connection) ps.execute_prepared_sql('scrape_results', ['id', 'url', 'data'], [1, 'http://site.com', '<h1>Site.com</h1>'])
Adding to your Rails project:
git clone email@example.com:wiseleyb/rails_preprared_sql.git cp rails_prepared_sql/prepared_sql.rb [yourproject]/lib/
- Sample code
- Discussion for PostgreSQL on StackOverflow
- Doc for PostgreSQL connection
- Blog post for MySQL
- Doc for MySQL connection
- Discussion for SQLite3 on StackOverflow * note - I didn't implement this in this project
- Doc for SQLite3
Five UX Tips for Better Dashboards
Dissecting Code With Ruby's caller Method
Handling deletes with Null Object Pattern in Ruby
reinteractive is Australia’s largest dedicated Ruby on Rails development company. We don’t cut corners and we know what we are doing.
We are an organisation made up of amazing individuals and we take pride in our team. We are 100% remote work enabling us to choose the best talent no matter which part of the country they live in. reinteractive is dedicated to making it a great place for any developer to work.
Webinars are our online portal for tips, tricks and lessons learned in everything we do. Make the most of this free resource to help you become a better developer.
The Ruby on Rails Installfest includes a full setup of your development environment and step-by-step instructions on how to build your first app hosted on Heroku. Over 1,800 attendees to date and counting.
The Ruby on Rails Development Hub is a monthly event where you will get the chance to spend time with our team and others in the community to improve and hone your Ruby on Rails skills.