Ruby on rails 在Rails erb文件中创建实例或局部变量?
我有一些纯粹与UI相关的计算,如在以下示例中确定html/css类:Ruby on rails 在Rails erb文件中创建实例或局部变量?,ruby-on-rails,erb,Ruby On Rails,Erb,我有一些纯粹与UI相关的计算,如在以下示例中确定html/css类: 如果这是在erb模板而不是控制器中完成的,则在创建变量时首选控制器,class或@class 创建变量、类或@class时,首选哪个 无法创建名为class的变量,因为它是保留关键字。另一方面,@class是完全有效的 说到在视图文件中创建变量,这不是一个好建议。鼓励人们远离你可能有的任何逻辑的观点是很常见的 如果您急于这样做,那么只需使用三元运算符: score < 60 ? 'red' : 'green' 得分
如果这是在erb模板而不是控制器中完成的,则在创建变量时首选控制器,class
或@class
创建变量、类或@class时,首选哪个
无法创建名为class
的变量,因为它是保留关键字。另一方面,@class
是完全有效的
说到在视图文件中创建变量,这不是一个好建议。鼓励人们远离你可能有的任何逻辑的观点是很常见的
如果您急于这样做,那么只需使用三元运算符:
score < 60 ? 'red' : 'green'
得分<60?“红色“:“绿色”
如果局部变量足够,请使用局部变量
但是,除此之外,视图实际上从来都不是定义任何变量的好地方。为什么不改用helper呢?比如说:
def score_class(score)
score < 60 ? 'red' : 'green'
end
def分数\等级(分数)
分数<60?“红色“:“绿色”
结束
通常不鼓励在视图中设置变量。视图有一个目的,即向用户呈现信息。因此,视图中的所有代码都应该是用户所看到内容的模板。这种决定应该在助手中做出(正如一个答案所建议的),这样视图就可以隐藏逻辑并只调用该方法。如果计算值将被多次使用,是否有一种方法可以“缓存”该值,从而使助手方法不需要被多次调用?寻找“记忆化”或者低级别缓存@wlnirvana.My不适合随机选择的示例