現在のレールアプリでは、ajax uploaderライブラリを使用しています.json {success:true}
で応答する必要があり、ファイルが正常にアップロードされたことを示しています。Rails JSレスポンスは、ステータスとテンプレートの両方を表示しますか?
私のアプリでは、ファイルはイメージで、アップロード後にこれをページに追加します。これは私が持っているかであるような何か言うかもしれないcreate.js.erb
ような私のJS応答が適切なテンプレートをレンダリングするでしょう上の例で
respond_to do |format|
format.html { redirect_to @resource, :notice => 'Created.' }
format.js
end
、...
$('#resources').append('<%= escape_javascript(render '@resource') %>');
:通常、私のような何かをするだろう過去にAjaxのコメントなどをしていました。さて、私のrespond_to
ブロックを作業アップローダーを取得するには、現在、この処理を行います。
format.js { render :json => { :success => true } }
これはアップローダー作業を行いますが、私はページにレンダリングされたパーシャルを追加し、私は通常、Ajaxのレスポンスの場合と同様に排除するように思えます。
私の質問は、両方を達成する方法はありますか?そうでなければ、レンダリングされたオブジェクトが正常に作成された後、そのページにどのようにポピュレートしますか?
このアイデアの作品を追加すると、ページ上のJavaScriptで次に
のようなあなたのJSONレスポンスを拡張する場合。 'render_to_string'についてはわかりませんでしたが、テストでは、コールバックに' .getScript'を使って部分文字列を取得することもできました。あなたの方法はよりクリーンです。ありがとう! – Andrew
メモ...デフォルトでは、 'escape_javascript'はコントローラには使用できません。それは' render:json'メソッドがとにかく行うため、不要です。 – Andrew
クール、それは助けてうれしい。 'escape_javascript'はそこでは動作しません。私が何を考えているのか分かりません。答えに対するフィードバックありがとう – danivovich