間の出力内容を表示する方法、解析方法があります。そのメソッド内でその値にレールは私のレール<b>application_helper.rb</b>ファイルで<%= >と<%== >
<form>
、他のhtmlタグ、および
を含む文字列変数HTML、です。私は解析意志出力への呼び出しHTML変数の値
<%= parse() %>
で、index.html.erb私のビュー内解析を呼び出します。
は全く予想外なことに、私はつまり、Webページではなく、フォームをレンダリングする書き込み
<form>
が含まれ、ビューはブラウザがまったく処理しませんでしたWebページをレンダリングすることに気づきました。ように、そのような
<br>.
そして
など他のすべてのタグ、にも対応するスペースに置き換えられていませんでした。
ウェブページのソースコードをチェックするには、私は(例えば
のような)全てのアンパサンドが
&
と<たように、ブラウザにビューによって送信されたことに気づい>
<
と同様に送信されます。
何が起こったのですか?
<%= %>
内
<parse()>
を置くブラウザにそれを渡す前HTMLの値を処理しましたか?どうして?私は
<%== %>
内
パース()を置くとき
パズルの別の部分は、Webページが正常にレンダリングされたされた(私は、私はちょうど、
<%== %>
が正しい構文ではありません知っています間違ってこのパズルを発見しました。)
何が起こっているのですか?
次に、 '<%= %>'の中で 'link_to'または' image_tag'ヘルパー関数を使うと、なぜ ' 'が生成されないのでしょうか? 'タグまたは' 'タグはエスケープされましたか? –
私が知っているように、 'link_to'はその実装で' content_tag'を使い、content_tagは 'html_safe'文字列を生成します。行く可能性のあるバリアントの1つは '<%= parse()。html_safe%>'です。 'raw(parse())'は 'parse()。to_s.html_safe'のエイリアスによく似ています。 – AntonTkachov