このようなページがありselect_tag
、エンジンを選択するために使用するnil
かhaml
、選択nil
した場合は body_preview 値を使用し$('#mail_body').val()
て、html コードを直接表示します。選択された 'haml' が mail_body に haml
コードを記述し、body_preview 値が$(#mail_body.val())
html に変換される場合、haml コードを変換するのは static メソッドのみを使用し、ruby 動的値は使用しません。
<%= select_tag "engine", "<option></option><option>haml</option>",
:onchange => "$('#body_preview').trigger('load');"%>
<%= text_area_tag 'mail_body', nil,
:onchange => "$('#body_preview').trigger('load');" %>
<iframe id="body_preview"
onload="$('#engine').val() == 'haml' ? "???????" : $('#mail_body').val()">
</iframe>
エンジンがゼロのとき
メール本文
#content
.left.column
%h2 Welcome to our site!
%p 2
body_preview
#content .left.column %h2 Welcome to our site! %p 2
エンジンがhamlの場合 mail_body
#content
.left.column
%h2 Welcome to our site!
%p 2
body_preview が
<div id="content">
<div class="left column">
<h2>Welcome to our site!</h2>
<p>2</p>
</div>
</div>