在 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
我有一些纯粹 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