web-dev-qa-db-ja.com

<%==%>はRails erbで何をしますか?

最近これを見て、面白いと思いました。しかし、私はそれが何をするのか本当に理解していませんか?

例Railsアプリがあり、bootstrap jsonを実行したいので、2回目のリクエストを行う必要はありません。通常は次のように記述します。この。

<%= raw @model.to_json %>または<%= @model.to_json.html_safe %>

メッセージrawまたはhtml_safeを送信する必要があります。そうしないと、jsonがhtmlエスケープされ、正しく解析されません。ただし、これも機能するようです。

<%== @model.to_json %>

しかし、ドキュメントが見つかりません。

誰かがこれが正確に何をするのか知っていますか?つまり、html_safeまたはrawを呼び出すのとまったく同じですか?それともそれ以上のものがありますか?

49
mwoods79

<%==rawと同等です。

Ruby on Rails Guide

逐語的に何かを挿入するには、html_safeを呼び出すのではなく、rawヘルパーを使用します。

<%= raw @cms.current_template %> <%# inserts @cms.current_template as is %>

または、同等に、<%==を使用します。

<%== @cms.current_template %> <%# inserts @cms.current_template as is %>
56
Stefan

Railsは実際にはERBの代わりに Erubis を使用します。ERBは他のさまざまなものをサポートします。

<%==は期待どおりですが、次のようになります。 エスケープされていない値を出力します

11
Nevir