我知道一般来说,在视图中包含控制器代码并不是一个好主意。但是,有没有这种情况并非完全正确?举例来说,你看这个例子:将控制器代码添加到视图总是不好的?
<%= link_to "Upgrade (costs #{ Skill.get_profession_cost('Admin')} gold)" ...
在这个例子中,我需要得到行业的成本超过一个角色(管理员,用户和更多)。因此,像上面那样有很多链接。现在问题是做这件事的最佳做法是什么。我可以想到3种方法:
正如上图所示。 (缺点 - 我需要模型中的get_profession_cost函数,因为我在控制器中使用它;因此,帮助器似乎对我有点冗余)。此外,我有点认为助手应该是在控制器中的代码。
获取事先商定的哈希值,如:
用户=> 1000,联系=> 3000 ...等等。尽管这样做比较麻烦,但也很麻烦。
我真的很喜欢你的意见。有没有更好的办法,如果没有,你会选择哪一个?
好极了,所以看起来确实在视图中添加这样的代码并不是什么好主意。我会和哈希一起去尝试不惜一切代价保持我的观点:) Thanx! – Spyros 2011-02-08 08:12:10