私はremotipartと一緒に5を使用しています。 remotipartバージョンです:ujs + remotipaart - jQueryの `.html(...)`呼び出しを実行すると、追加されたhtmlはテキストになります
gem 'remotipart', github: 'mshibuya/remotipart'
(この質問の瞬間、現在のコミットが88d9a7d55bde66acb6cf3a3c6036a5a1fc991d5eです)。
multipart: true and
remote:trueを持つフォームを送信したい場合添付ファイルを送信しないで、それは素晴らしい動作します。しかし、ファイルを送信すると失敗します。
このような応答を検討し、ケースを説明するために:このレスポンスが実行されると
(function() {
modelErrors('<div class=\'alert alert-danger alert-dismissible\' role=\'alert\'>\n <div aria-label=\'Close\' class=\'close fade in\' data-dismiss=\'alert\'>\n <span aria-hidden>\n ×\n <\/span>\n <\/div>\n Code can\'t be blank\n<\/div>\n');
}).call(this);
は、すぐに(それはJSあるので)到着した後、フォームが、この場合には(それは予想通り、このように見えます検証エラーが起こることが権利である、とレンダリングされた危険の警告は、テキストで表示されるように右である):
しかし、私はファイルのフィールドを埋めたときに、全く同じ場合(正確に同じ検証エラーを繰り返し)、for mはかなり異なっています:
あなたが推測できる場合は、内容がテキストとして渡されます。サーバから受信された実際の応答が少し異なります。
<script type="text/javascript">try{window.parent.document;}catch(err){document.domain=document.domain;}</script>(function() {
modelErrors('<div class=\'alert alert-danger alert-dismissible\' role=\'alert\'>\n <div aria-label=\'Close\' class=\'close fade in\' data-dismiss=\'alert\'>\n <span aria-hidden>\n ×\n <\/span>\n <\/div>\n Code can\'t be blank\n<\/div>\n');
}).call(this);
これは私の応答の実際の身体(それが悪いコピー - ペーストではなく、remotipartによってラップと実際の応答)です。
modalErrors
機能はかなり馬鹿です:
function modalErrors(html) {
$('#main-modal > .modal-dialog > .modal-content > .modal-body > .errors').html(html);
}
(私は、ブラウザのDOMインスペクタでそれらを探してください)jQueryの-追加htmlのチャンクを比較すると、彼らは次のようになります。
グッド:
<div class="alert alert-danger" role="alert">
<ul style="list-style-type: none">
<li>Code can't be blank</li>
</ul>
</div>
悪い:
Code can't be blank
私はここで何が欠けていますか?私が必要とするのは、私のresposeが必要なときにhtmlコンテンツを追加できるようにすることです。