6

私はここで単純なプラグインに取り組んでいます、そして今のところそれは働いています。私のヘルパーを除いて。その非常に単純なヘルパーであり、<span></span>後でjavascriptを解析するためにをエコーする必要があります。

問題は、htmlが正しくレンダリングされないこと、特殊文字がhtmlに相当するコードに置き換えられることです。

私のプラグイン初期化子:

ActionView::Helpers.send :include, Test

私のプラグインヘルパー:

module Test    
  def only_for_testing
    render(:text => "<span></span>")
  end
end

ビュー内でonly_for_testingヘルパーを呼び出すと、レンダリングする代わりに"<span></span>"&lt;span&gt;&lt;/span&gt;」がレンダリングされます。

レンダリングを削除して、文字列のみを返すようにしました。同じ効果です。非常に単純なhtmlであり、レイアウト用ではなく、解析用であるため、この部分を作成したくありません。

私がここで間違ったことをしたかもしれないという考えはありますか?

4

3 に答える 3

16

Rails 3は、デフォルトでビューのHTMLをエスケープします。raw()ヘルパーまたは「ここのHTML文字列」.html_safeを使用する必要があります

于 2010-11-05T03:00:07.780 に答える
6
module Test    
  def only_for_testing
    render(:html=> "<span></span>")
  end
end
于 2010-11-05T02:34:16.700 に答える
3

Rails 3.2では、ヘルパーが「:html」記号を認識しませんでしたが、「:inline」に置き換えられたと思います。これが私にとってはうまくいったからです。

module IndexHelper
    def logo
        render(:inline=> "<div class='css_name'></div>")
    end
end
于 2012-03-25T19:15:39.267 に答える