是否可以在Rails中的eRuby模板中定义常量

时间:2010-11-29 14:03:32

标签: ruby-on-rails ruby eruby

由于我讨厌使用布尔文字调用方法而没有说出他们的意图,我尝试在我的eruby模板中定义一个常量,如下所示:<% NO_NIL_PADDING = false %>用于调用in_groups_of。但是,这会导致动态常量赋值错误。有办法解决这个问题吗?我可以在某个地方定义环境中的常量,但是atm我宁愿保持常量定义尽可能接近它的用法,直到它开始变得有必要将它的定义移动到更高的水平。

1 个答案:

答案 0 :(得分:0)

我不知道你在模板中做了什么,可能会导致它,但只是设置常量为我工作:

ruby-1.8.7-p249 > template = ERB.new "<% DONT_SET_CONSTANTS_IN_VIEWS = false %>"
 => #<ERB:0x100485890 @src="_erbout = '';  DONT_SET_CONSTANTS_IN_VIEWS = false ; _erbout", @filename=nil, @safe_level=nil> 
ruby-1.8.7-p249 > template.result(binding)
 => "" 
但是,在旁注上,我强烈建议不要这样做。作为去年继承了大量代码的人,你会为自己和潜在的其他人带来严重的麻烦。这样的选项实际上可能会根据业务逻辑进行更改吗?我会尝试选择一个理智的默认值,然后使用它。如果它没有被其他地方使用,为什么要创建一个常量呢?