0

ヘルパーのこのコード:

def dgtags
    if params[:controller]=='my_controller'
      javascript_include_tag('dygraph-combined.js') <<
          tag(:meta, :http_equiv => 'X-UA-Compatible', :content => 'IE=EmulateIE7; IE=EmulateIE9') <<
          '<!--[if IE]>'.html_safe <<
          javascript_include_tag('excanvas.compiled.js') <<
          '<![endif]-->'.html_safe
    end
end

次の出力を生成します。

<script src="/javascripts/dygraph-combined.js?1338036501" type="text/javascript"></script><meta content="IE=EmulateIE7; IE=EmulateIE9" http_equiv="X-UA-Compatible" /><!--[if IE]><script src="/javascripts/excanvas.compiled.js?1237712986" type="text/javascript"></script><![endif]-->

タグの間に改行を挿入するにはどうすればよいですか?このような:

<script src="/javascripts/dygraph-combined.js?1338036501" type="text/javascript"></script>
<meta content="IE=EmulateIE7; IE=EmulateIE9" http_equiv="X-UA-Compatible" />
<!--[if IE]><script src="/javascripts/excanvas.compiled.js?1237712986" type="text/javascript"></script><![endif]-->

'\n'または'\n'.html_safeは役に立ちません-文字通り\nを生成します。

4

1 に答える 1

1

二重引用符を使用する必要があります "

使用し"\n"ない'\n'

詳細については、http: //en.wikibooks.org/wiki/Ruby_Programming/Stringsをご覧ください。

コードを少し変更しました。より良いアプローチは、 を使用してすべての要素を結合する"\n"ことです。controller_nameの代わりに使用することもできますparams[:controller]

def dgtags
    if controller_name == 'my_controller'
      [ javascript_include_tag('dygraph-combined.js'),
        tag(:meta, :http_equiv => 'X-UA-Compatible', :content => 'IE=EmulateIE7; IE=EmulateIE9'),
        '<!--[if IE]>',
        javascript_include_tag('excanvas.compiled.js'),
        '<![endif]-->'].join("\n").html_safe
    end
end
于 2012-05-26T16:00:55.533 に答える