开发者

How to access Mysql::Result in ActiveRecord?

开发者 https://www.devze.com 2023-01-15 16:48 出处:网络
Example: result = ActiveRecord::Base.connection.execute(\"select \'ABC\'\") How can I get the \'开发者_开发百科ABC\' value from result? Tried result.first without success. Thanks

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.

0

上一篇:

:下一篇

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号