我是rails的新手,并且无法将我在rails控制台中获得的内容显示在我的观看页面中。
在我的rails控制台中,我将输入c = Course.find(21)
。
然后当我将c.scores.all
放入我的控制台时,我得到了与课程模型相关联的所有分数列,其ID为21.
但是,我不能在控制器或视图中做同样的事情。我尝试输入相同的信息,但没有找到与课程/显示页面中的courses_id相关联的分数。我知道这很简单,但似乎无法让这个工作。感谢
答案 0 :(得分:1)
如果没有您的控制器代码和您的观点,我只能猜测您问题的原因。
代码c.scores.all
会返回ActiveRecord::Relation
,而不是模型数组。
关系是延迟加载的,这意味着在您从中检索数据之前它不会查询数据库(通常是通过调用to_a
或each
)。这可能是您遇到问题的原因。
默认情况下,Rails控制台和irb工作在检查模式,这意味着无论何时输入表达式,Rails控制台都会自动调用该表达式的返回值inspect
并打印结果。 ActiveRecord::Relation#inspect
内部调用to_a
从而访问数据库,因此您可以在Rails控制台中查看数据。