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"]
但是,上述方法有很多缺陷,因此如果可以,最好使用模型