我想在rails上的ruby中使用原始sql来检索数据,以便更快地响应。 我用
@test1=ActiveRecord::Base.connection.execute("select Unique Id from device_tables")
然后我测试它使用p标签在视图中显示它:
<p><%= @test1 %></p>
但不是给我数据,而是显示关系:
#<Mysql2::Result:0x00000008664948>
我想获取数据库的内容,将所有唯一ID存储在数组中。 我怎么能得到这个?谢谢你的推荐
答案 0 :(得分:0)
您应该使用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}
答案 1 :(得分:-3)
您可以尝试find_by_sql method.eg:
TableName.find_by_sql"select * from table_names"