我的新轨道时遇到了问题出什么我得到了我的Rails控制台我的意见的网页。如何获得数据
在我的rails控制台,我会键入c = Course.find(21)
。 后来,当我把c.scores.all
在我的控制台我得到的所有与该场模型相关联的得分列,与21
的ID但是,我不能做同样的事情在控制器或意见。我尝试过放置相同的信息,但没有找到与course/show页面中的courses_id相关的分数。我知道这很简单,但似乎无法得到这个工作。谢谢
我的新轨道时遇到了问题出什么我得到了我的Rails控制台我的意见的网页。如何获得数据
在我的rails控制台,我会键入c = Course.find(21)
。 后来,当我把c.scores.all
在我的控制台我得到的所有与该场模型相关联的得分列,与21
的ID但是,我不能做同样的事情在控制器或意见。我尝试过放置相同的信息,但没有找到与course/show页面中的courses_id相关的分数。我知道这很简单,但似乎无法得到这个工作。谢谢
没有你的控制器和你的观点的代码,我只能猜你的问题的原因。
c.scores.all
返回ActiveRecord::Relation
,而不是模型的阵列的代码。
一个关系是延迟加载,这意味着它不会查询数据库,直到您从中检索数据(通常通过调用to_a
或each
)。这可能是你的问题的原因。
Rails的控制台和IRB工作,默认情况下,在检查模式,这意味着当你输入一个表达式,Rails的控制台自动调用inspect
上表达的返回值,并打印出结果。 ActiveRecord::Relation#inspect
内部调用to_a
因此访问数据库,因此您可以在Rails控制台中看到您的数据。
很好的解释。由于我们只是猜测,因为没有代码可以看,分数可能是一个关联。如果是这种情况,那么OP会阅读关于积极记录的急切加载:http://guides.rubyonrails.org/active_record_querying.html#eager-loading-associations – luizrogeriocn
发布您的控制器操作和您的查看代码 – Doon