我的几个部分可以以两种“模式”呈现。如果full_display
是false
,我不会渲染多个字段。为了方便起见,我想将“模式”之一设为默认值 - 如果full_display
未定义,则将其视为false
. 我想出了这段代码:
(((not defined?(full_display).nil?) && full_display) || false)
有很多东西可以四处走动。将它放在帮助程序或其他东西中会很好,但由于 Ruby 只有词法范围,我想不出任何好的方法来做到这一点。
我已经尝试过的坏主意:
- 在部分的顶部 do
<% display = long code that is above %>
和 use 通过代码显示,但是在视图中创建局部变量看起来很糟糕,并且必须将 using 复制到每个部分中full_display
。 - 将它包装在一个字符串中,将其放入一个助手中并在视图中使用 eval(display_helper) ,但显然这会产生安全问题。