![](/img/trans.png)
[英]How to chain raw SQL queries in Rails OR how to return an ActiveRecord_Relation from a raw SQL query in Rails?
[英]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
您应该使用each
或map
进行迭代以查看结果。 您当前的对象如下所示:
#<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.