當我使用方法.count時,它工作得很好,準確地顯示帖子的數量。當我嘗試.size時,它會引發錯誤。爲什麼是這樣?瞭解導軌大小vs計數,以及爲什麼.size在視圖中不起作用?
我static_controller.rb代碼(與COUNT爲方法)
class StaticController < ApplicationController
def index
@post_count = Post.count
@user_count = User.count
end
index.html.erb(與COUNT爲方法)
<div>
<p> <%= @post_count %> </p>
</div>
當我將.count的實例更改爲size
時,我在本地服務器中收到此錯誤:
NoMethodError在爲#
索引/ 未定義的方法`大小」 - 應用程序/控制器/ static_controller.rb,第4行
這是爲什麼? .size不是內置的rails方法嗎?如果不是,我該如何解決這個問題?
另外,我的理解是否正確:如果將counter_cache應用於該方法正在應用的模型,那麼.size的性能會更高。例如,如果我的post.rb模型有一個聲明counter_cache的部分,這是否會自動使它更快/更高效?
在Rails 4中,您可以使用:'Post.count'或'Post.all.size' –