Trong ứng dụng Rails của tôi, tôi có một hành động tạo một tài liệu XML bằng cách sử dụng một khuôn mẫu XML Builder (rxml
) và render_to_string
. Tài liệu XML được chuyển tiếp đến một máy chủ phụ trợ.Làm cách nào để hiển thị chế độ xem bình thường sau khi sử dụng render_to_string?
Sau khi tạo tài liệu XML, tôi muốn gửi phản hồi HTML thông thường cho trình duyệt, nhưng bằng cách nào đó Rails đang ghi nhớ cuộc gọi đầu tiên đến render_to_string
.
Ví dụ:
- Rails không thể tìm thấy giao diện mặc định
show.html.erb
vì nó sẽ cho mộtshow.rxml
. - Chỉ cần đặt
render 'mycontroller/show.html.erb'
ở cuối trình xử lý tác vụ của tôi khiến Rails tìm mẫu, nhưng trình duyệt không hoạt động vì loại nội dung của tiêu đề phản hồi làtext/xml
.
Có cách nào để sử dụng render_to_string
mà không "làm mờ" phản hồi trình duyệt thực tế không?
EDIT: Dường như trong Rails 2 erase_render_results
sẽ thực hiện thủ thuật, nhưng trong Rails 3 nó không còn khả dụng nữa.
Thực tế 'erase_render_results' chỉ đặt cờ thành sai và xóa phản hồi_body - trong nguồn cho render_to_string, loại nội dung được đặt thành nil. Điều này có vẻ như nhiều khả năng vấn đề bạn gặp phải là do. –