How to access Mysql::Result in ActiveRecord?
Example:
result = ActiveRecord::Base.connection.execute("select 'ABC'")
How can I get the '开发者_开发百科ABC'
value from result
? Tried result.first
without success. Thanks
p.s. Gems:
activerecord (2.3.9)
mysql (2.8.1)
You could try it on the cosole:
script/console # rails 2 rails console # rails 3
enter your code in the console and you get:
irb> result = ActiveRecord::Base.connection.execute("select 'ABC'") => [{0=>"ABC", "'ABC'"=>"ABC"}]
so it you get it with
result.first[0]
# or
result.first['ABC']
result.first
just returns the first row, not the first value. This row consists of a Hash with numerical and named access.
Instead of .execute
you could use .select_all
, this will return an array with the result.
So use:
ActiveRecord::Base.connection.select_all("select 'ABC'")
Try:
result = ActiveRecord::Base.connection.select_value("select 'ABC'")
I wouldn't advise messing around with the underlying database code if you don't need to.
精彩评论