在 Rails erb 文件中创建实例或局部变量?

Creating instance or local variables in Rails erb file?

我有一些纯粹 UI 相关的计算,例如在以下示例中确定 html/css class:

<% class = score < 60 ? "red" : "green" %>

如果这是在 erb 模板而不是控制器中完成的(在创建变量时首选控制器),class@class?

which is preferred when creating the variable, class or @class?

您不能创建名为 class 的变量,因为它是保留关键字。另一方面 @class 是完全有效的。

关于在视图文件中创建变量,这不是个好建议。鼓励人们远离你可能拥有的任何逻辑的观点是很常见的。

如果您急于这样做,那么只需使用三元运算符即可:

score < 60 ? 'red' : 'green'

如果局部变量够用,就用局部变量。

但是,除此之外,视图实际上从来都不是定义任何变量的好地方。你为什么不使用助手呢?像这样,例如:

def score_class(score)
  score < 60 ? 'red' : 'green'
end