2016-05-03 102 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