我有一个 @shows 控制器,每个用户都可以创建一个Show( Singular )。
在显示创建视图(显示/新)上,我想显示已有多少节目的计数器。
我试过了:
def count
@shows.all.count
end
# in my Shows Controller
然后在我的视图中调用<%= @count %>
。但我想这不是正确的方法。
我尝试直接在我的视图中调用它:
<%= @shows.count %>
但这都不起作用。
有人能帮助我吗?
答案 0 :(得分:2)
@show_count = Show.count
将完成你的工作。
在您的观看中<%= @show_count%>
答案 1 :(得分:0)
您需要在控制器的new
方法中创建@count变量,或者从视图中使用辅助方法
控制器版本
def new
# your other code here
@count = Shows.count
# @count is now available in your view for `new`
end
您可以随时在视图中调用<%= @shows.count %>
。
是的,您应该只在视图中执行最少的代码,但这只是一个简单的调用,而不是执行复杂操作的方法链,因此可以这样做。
根据给出的代码,我不能说为什么@shows.count
在视图中不适合你。也许您忘了在控制器中添加.all
?