# Using .find\_by\_sql for database/admin queries

**URL:** <https://www.ruby-forum.com/t/using-find-by-sql-for-database-admin-queries/120341>\
**Category:** Rails\
**Created:** [November 15, 2007, 11:04pm UTC](https://www.ruby-forum.com/t/using-find-by-sql-for-database-admin-queries/120341 "2007-11-15T23:04:18Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![thabenksta](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/t/97f17d/32.png) [@thabenksta](https://www.ruby-forum.com/u/thabenksta)\
**Post date:** [November 15, 2007, 11:04pm UTC](https://www.ruby-forum.com/t/using-find-by-sql-for-database-admin-queries/120341/1 "2007-11-15T23:04:18Z")

</div>

I want to create an internal admin view to display the output of “show  
variables” from mysql. What’s the best approach do this?

For example, I’m doing something like this:

@variables = ActiveRecord::Base.find\_by\_sql “show variables;”

Then, I get stuff like this back (227 elements in @variables) in  
script/console:

> > @variables[0]  
> > =\> #\<ActiveRecord::Base:0x3296eec  
> > @attributes={“Variable\_name”=\>“auto\_increment\_increment”, “Value”=\>“1”}\>

However, I’m not sure how to get Variable\_name and Value; do I access  
this as a Hash element? An attribute?

Should I create a custom Model class such as this?  
class MySql \< ActiveRecord::Base

Thanks in advance.

---

<div class="post-metadata">

**Author:** ![thabenksta](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/t/97f17d/32.png) [@thabenksta](https://www.ruby-forum.com/u/thabenksta)\
**Post date:** [November 15, 2007, 11:13pm UTC](https://www.ruby-forum.com/t/using-find-by-sql-for-database-admin-queries/120341/2 "2007-11-15T23:13:05Z")

</div>

> > > @variables[0]  
> > > =\> #\<ActiveRecord::Base:0x3296eec  
> > > @attributes={“Variable\_name”=\>“auto\_increment\_increment”, “Value”=\>“1”}\>
> 
> However, I’m not sure how to get Variable\_name and Value; do I access  
> this as a Hash element? An attribute?

What happens if you do:

@variables[0][:Variable\_name]  
@variables[0][:Value]

?

---

<div class="post-metadata">

**Author:** ![thabenksta](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/t/97f17d/32.png) [@thabenksta](https://www.ruby-forum.com/u/thabenksta)\
**Post date:** [November 15, 2007, 11:22pm UTC](https://www.ruby-forum.com/t/using-find-by-sql-for-database-admin-queries/120341/3 "2007-11-15T23:22:42Z")

</div>

Philip H. wrote:

> > > > @variables[0]  
> > > > =\> #\<ActiveRecord::Base:0x3296eec  
> > > > @attributes={“Variable\_name”=\>“auto\_increment\_increment”, “Value”=\>“1”}\>
> > 
> > However, I’m not sure how to get Variable\_name and Value; do I access  
> > this as a Hash element? An attribute?
> 
> What happens if you do:
> 
> @variables[0][:Variable\_name]  
> @variables[0][:Value]
> 
> ?

Hi, Philip. Thanks. Unfortunately, I get the same error as before  
(since I had already tried a variation: @variables[0][“Variable\_name”])

> > @variables[0][:Variable\_name]  
> > NoMethodError: undefined method `abstract_class?' for Object:Class from ./script/../config/../config/../vendor/rails/activerecord/lib/active_record/base.rb:1367:in`class\_of\_active\_record\_descendant’  
> > from  
> > ./script/…/config/…/config/…/vendor/rails/activerecord/lib/activ

---

<div class="post-metadata">

**Author:** ![thabenksta](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/t/97f17d/32.png) [@thabenksta](https://www.ruby-forum.com/u/thabenksta)\
**Post date:** [November 15, 2007, 11:26pm UTC](https://www.ruby-forum.com/t/using-find-by-sql-for-database-admin-queries/120341/4 "2007-11-15T23:26:35Z")

</div>

Ben K. wrote:

> > > @variables[0]

Try something like:

ActiveRecord::Base.connection.select\_all “show variables”

–  
Jack C.  
removed\_email\_address@domain.invalid

---

<div class="post-metadata">

**Author:** ![thabenksta](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/t/97f17d/32.png) [@thabenksta](https://www.ruby-forum.com/u/thabenksta)\
**Post date:** [November 15, 2007, 11:42pm UTC](https://www.ruby-forum.com/t/using-find-by-sql-for-database-admin-queries/120341/5 "2007-11-15T23:42:41Z")

</div>

Jack C. wrote:

> Ben K. wrote:
> 
> > > > @variables[0]
> 
> Try something like:
> 
> ActiveRecord::Base.connection.select\_all “show variables”
> 
> –  
> Jack C.  
> removed\_email\_address@domain.invalid

Thanks, Jack – that did the trick! Here is some sample output:

> > @variables[0]  
> > =\> {“Variable\_name”=\>“auto\_increment\_increment”, “Value”=\>“1”}

> > @variables[0][“Variable\_name”]  
> > =\> “auto\_increment\_increment”

> > @variables[0][“Value”]  
> > =\> “1”
