Можно ли определить константу в шаблоне eRuby в Rails - PullRequest
1 голос
/ 29 ноября 2010

Так как я ненавижу вызывать методы с логическими литералами, которые ничего не говорят о своем намерении, я попытался определить константу в моем шаблоне eruby следующим образом: <% NO_NIL_PADDING = false %> для вызова in_groups_of. Однако это привело к ошибке динамического назначения констант . Есть ли способ обойти это? Возможно, я мог бы где-то определить константу в среде, но, по крайней мере, я бы предпочел, чтобы определение константы было как можно ближе к его использованию, пока не возникнет необходимость переместить его определение на более высокий уровень.

1 Ответ

0 голосов
/ 29 ноября 2010

Я не знаю, что еще вы делаете в шаблоне, который может его вызывать, но просто установка константы работает для меня:

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)
 => "" 

на заметку, однако я бы настоятельно рекомендовал не делать этого. Как человек, унаследовавший много кода в прошлом году, вы делаете серьезные головные боли для себя и, возможно, для кого-то еще. Действительно ли такой вариант может измениться в зависимости от бизнес-логики? Я бы попробовал выбрать вменяемый дефолт и просто использовать его. Если это не используется где-то еще, зачем создавать константу?

...