Ruby on rails ActiveRecord::Base.connection.select\u all-哈希错误
我有以下代码:Ruby on rails ActiveRecord::Base.connection.select\u all-哈希错误,ruby-on-rails,Ruby On Rails,我有以下代码: <%@submission_general = ActiveRecord::Base.connection.select_all('SELECT * FROM DBASE_general.submission')%> <%= @submission_general.count%> -- gives 11,000 entries <%= @submission_general[1].sub_id%> -- gives undefined
<%@submission_general = ActiveRecord::Base.connection.select_all('SELECT * FROM DBASE_general.submission')%>
<%= @submission_general.count%> -- gives 11,000 entries
<%= @submission_general[1].sub_id%> -- gives undefined method `sub_id' for #<Hash:0xb4a01108>
我哪里出错了
非常感谢您的帮助根据文档,返回哈希数组,而不是模型数组。我猜您想要编写类似Submission.all的东西,它将生成相同的SQL,并将其绑定到DBASE_general数据库中的表提交
如果由于某种原因,不希望该表有一个模型,可能您想节省一些内存,或者事先不知道表名等,那么您必须将结果作为成对列的散列(列名称/值)来处理,因此您可以使用如下方式:
@submission_general = ActiveRecord::Base.connection.select_all('SELECT * FROM DBASE_general.submission')
@submission_general[1]["sub_id"]
但是,上述方法有很多缺陷,因此如果可以,最好使用模型。根据文档,返回的是散列数组,而不是模型数组。我猜您想要编写类似Submission.all的东西,它将生成相同的SQL,并将其绑定到DBASE_general数据库中的表提交
如果由于某种原因,不希望该表有一个模型,可能您想节省一些内存,或者事先不知道表名等,那么您必须将结果作为成对列的散列(列名称/值)来处理,因此您可以使用如下方式:
@submission_general = ActiveRecord::Base.connection.select_all('SELECT * FROM DBASE_general.submission')
@submission_general[1]["sub_id"]
但是,上述方法有很多缺陷,因此如果可以,最好使用模型