私のパーシャルのいくつかは、2 つの「モード」でレンダリングできます。の場合、いくつかのフィールドfull_display
をfalse
レンダリングしません。物事を簡単にするために、「モード」の 1 つをデフォルトにしたいと思いました。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) を使用しますが、明らかにこれによりセキュリティ上の懸念が生じます。