2016-05-03 161 views
0

我的新轨道时遇到了问题出什么我得到了我的Rails控制台我的意见的网页。如何获得数据

在我的rails控制台,我会键入c = Course.find(21)。 后来,当我把c.scores.all在我的控制台我得到的所有与该场模型相关联的得分列,与21

的ID但是,我不能做同样的事情在控制器或意见。我尝试过放置相同的信息,但没有找到与course/show页面中的courses_id相关的分数。我知道这很简单,但似乎无法得到这个工作。谢谢

+6

发布您的控制器操作和您的查看代码 – Doon

回答

1

没有你的控制器和你的观点的代码,我只能你的问题的原因。

c.scores.all返回ActiveRecord::Relation,而不是模型的阵列的代码。

一个关系是延迟加载,这意味着它不会查询数据库,直到您从中检索数据(通常通过调用to_aeach)。这可能是你的问题的原因。

Rails的控制台和IRB工作,默认情况下,在检查模式,这意味着当你输入一个表达式,Rails的控制台自动调用inspect上表达的返回值,并打印出结果。 ActiveRecord::Relation#inspect内部调用to_a因此访问数据库,因此您可以在Rails控制台中看到您的数据。

+0

很好的解释。由于我们只是猜测,因为没有代码可以看,分数可能是一个关联。如果是这种情况,那么OP会阅读关于积极记录的急切加载:http://guides.rubyonrails.org/active_record_querying.html#eager-loading-associations – luizrogeriocn