アプリケーションを Rails 3 に移行する際に大きな問題に遭遇しました。「WidgetHelper」と呼ばれるビュー ヘルパーがあります。参照すると、いくつかのパーシャルを自動的にレンダリングするのに役立ちます。例えば
<%= widget('loginbox', :global => true) %>
しかし、正しく動作しません。HTMLコードを希望どおりにレンダリングしますが、予期しない戻り値をエスケープします。戻り値をエスケープしないように (または何かに) レンダリングするように指示するにはどうすればよいですか?
これが私のコードです:
def widget(widget, options={})
begin
unless options[:fullpath]
render :partial => widget_path(widget, options[:global])
else
render "widgets/#{widget}"
end
rescue ActionView::MissingTemplate
"<!-- widget: #{widget.inspect}, #{options.inspect} -->"
end
end