Trong ứng dụng đường ray hiện tại của tôi, tôi đang sử dụng thư viện ajax uploader yêu cầu bạn trả lời bằng json {success:true}
để cho biết tệp đã được tải lên thành công.Rails JS Response, hiển thị cả trạng thái và mẫu?
Trong ứng dụng của tôi, các tệp là hình ảnh và sau khi tải lên, tôi muốn thêm trang này vào trang. Thông thường tôi sẽ làm một cái gì đó như:
respond_to do |format|
format.html { redirect_to @resource, :notice => 'Created.' }
format.js
end
Trong ví dụ trên phản ứng JS của tôi sẽ làm cho mẫu thích hợp, chẳng hạn như create.js.erb
mà có thể nói điều gì đó giống như ...
$('#resources').append('<%= escape_javascript(render '@resource') %>');
Đây là cách tôi có thực hiện những việc như bình luận Ajax, v.v. trong quá khứ. Bây giờ, để có được người tải lên làm việc respond_to
khối của tôi hiện đang thực hiện điều này:
format.js { render :json => { :success => true } }
Điều này làm cho việc tải lên nhưng dường như ngăn cản tôi thêm partials render để trang như tôi thường làm với một phản ứng Ajax.
Câu hỏi của tôi là, có cách nào để thực hiện cả hai không? Nếu không, bạn sẽ điền trang với các đối tượng được hiển thị sau khi chúng đã được tạo thành công như thế nào?
Ý tưởng này hoạt động. Tôi không biết về 'render_to_string', nhưng trong thử nghiệm tôi thấy tôi cũng có thể sử dụng' .getScript' trong hàm gọi lại để lấy một phần. Phương pháp của bạn sạch hơn. Cảm ơn! – Andrew
Một lưu ý ... theo mặc định 'escape_javascript' không có sẵn cho bộ điều khiển và không cần thiết vì phương thức' render: json' vẫn hoạt động. – Andrew
thật tuyệt, rất vui. Có nghĩa là 'escape_javascript' không hoạt động ở đó, không biết tôi đang nghĩ gì. Cảm ơn phản hồi về câu trả lời – danivovich