我几乎不懂轨道,更不用说红宝石,所以这可能是一个简单的。在我的控制器的show动作之一,我有我已经定义来计算总的一些项目的变量,看起来是这样的:从(很快瘦)的控制器移动到(不太胖)模型
@total_of_items = SomeModel.where(:user_id => @user).sum(:amount)
这显然收集所有量的属性,这个特殊的用户,并增加了他们向上。所以在我看来我只是打电话:
<%= @total_of_items %>
它显示出来。所以有两个问题。首先,这真的是做这种事情的最佳方式吗?因为我可能想要取这个值并在另一个用户的视图中显示它来比较两者,或者类似的东西。这似乎是为了做到这一点,这必须是模型中的一种方法?我只是不确定。
我的第二个问题是如何获取控制器中定义的变量并将其放入模型中。看起来这是更“瘦瘦的控制器胖模式”的做事方式。帮助不大?
我更喜欢使用范围,因为它们更清楚地表达意图。所以我会建议使用@ apneadiving的答案;) – nathanvda 2011-04-29 00:09:36