繁体   English   中英

红宝石在Rails上的原始SQL返回关系

[英]Raw sql in ruby on rails return relation

我想在ruby on rails中使用原始sql来检索数据,以便更快地响应。 我用

 @test1=ActiveRecord::Base.connection.execute("select Unique Id from device_tables")

然后我测试使用ap标签在视图中显示它:

<p><%= @test1 %></p>

但是它没有给我数据,而是显示了一个关系:

#<Mysql2::Result:0x00000008664948>

我想获取数据库的内容,将所有唯一ID存储在数组中。 我该如何获得?感谢advamce

您应该使用eachmap进行迭代以查看结果。 您当前的对象如下所示:

#<Mysql2::Result:0xcd3dfe0 @query_options={:as=>:array, :async=>false, :cast_booleans=>false, :symbolize_keys=>false, :database_timezone=>:utc, :application_timezone=>nil, :cache_rows=>true, :connect_flags=>-2147442171, :cast=>true, :default_file=>nil, :default_group=>nil, :adapter=>"mysql2", :database=>"GetTravelTime_Development", :host=>"localhost", :pool=>5, :username=>"root", :password=>nil, :timeout=>5000, :flags=>2}> 

我已经在控制台上尝试过这样的单个和多个对象:

mysql_object = ActiveRecord::Base.connection.execute("select Unique Id from device_tables")
mysql_object.each{|object| puts object}
mysql_object.map{|object| puts object}

您可以尝试使用find_by_sql方法。例如:

TableName.find_by_sql"select * from table_names"

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM