如何“计算”来自Controller的用户输入

时间:2013-09-12 12:34:17

标签: ruby-on-rails controller ruby-on-rails-4 mvp

我有一个 @shows 控制器,每个用户都可以创建一个Show( Singular )。

在显示创建视图(显示/新)上,我想显示已有多少节目的计数器。

我试过了:

def count
  @shows.all.count
end
# in my Shows Controller

然后在我的视图中调用<%= @count %>。但我想这不是正确的方法。

我尝试直接在我的视图中调用它:

<%= @shows.count %>

但这都不起作用。

有人能帮助我吗?

2 个答案:

答案 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