Rails Execute SQL
Execute SQL with execute_sql
helper inside your Rails apps. Directly in rails console
.
Usage
Simply add this gem into your Gemfile.
And for example call directly in rails console
:
execute_sql "select count(*) from users where age > 50"
# see below for additional options.
OR in your models, controllers, or other parts of app:
ExecuteSQL.run "select count(*) from users where age > 50"
# or with different mode
# default mode: :print
# return array of HashWithIndifferentAccess objects
# please remember that arrays can be manipulated with Enumerable methods, but this is *not* a chainable ARel relation
ExecuteSQL.run "select * from users where age > 50", mode: :array
# return array of User objects
ExecuteSQL.run "select * from users where age > 50", mode: :array, klass: User
# return single value
ExecuteSQL.run "select count(*) from users where age > 50", mode: :single
# return array of results
ExecuteSQL.run "select * from users where age > 50", mode: :raw
# just execute and return nil
ExecuteSQL.run "truncate table users", mode: :none
Sample in controller:
class HomeController < ApplicationController
def index
@users = ExecuteSql.run "select * from users", mode: :raw
end
end
Installation
Add this line to your application's Gemfile:
gem 'execute_sql'
And then execute:
$ bundle
Options and modes
You can call:
In rails console use helper: execute_sql "some SQL"
.
Or ExecuteSql.run "some SQL"
or ExecuteSQL.run "some SQL"
.
TODO
- import SQL files
- travis CI
- verify with older rails
- more specs
Contributing
You are welcome to contribute.
License
The gem is available as open source under the terms of the MIT License.
Some pieces of code I took from another my gem: https://github.com/igorkasyanchuk/rails_db.
Contributors
- @pjforde1978
Big thank you.