Tôi có trang web Rails 2.1.2 chỉ có mẫu html, ví dụ: jobs.html.erb, vì vậy khi tôi yêu cầu một nguồn tài nguyên yên tĩnh:Các phương pháp để giới hạn định dạng hiển thị Đường dẫn thành html
www.mysite.com/jobs/1
Nó làm cho công việc của tôi trong html, tuy nhiên, nếu tôi yêu cầu:
www.mysite.com/jobs/1.xml
tôi nhận được lỗi:
Template is missing Missing template jobs/show.xml.erb in view path c:/workspace/mysite/app/views
Điều tồi tệ hơn là tôi cũng có thể yêu cầu một cái gì đó như
.210www.mysite.com/jobs/1.xyz
Và quả thực tôi thấy lỗi:
Template is missing Missing template jobs/show.xyz.erb in view path c:/workspace/mysite/app/views
Để hiện stricly nội dung chỉ html, cách sạch nhất và đơn giản nhất để nói với Rails mà tôi không muốn làm bất cứ điều gì khác hơn là các file .html.erb là gì.
Điều quan trọng cần lưu ý là:
- Một số hành động điều khiển của tôi chứa các cuộc gọi có điều kiện cho phương thức render() trong khi những người khác sử dụng các hành vi Rails mặc định tức là nếu bạn không gọi render() thì mẫu có tên youraction.html.erb sẽ được hiển thị.
- Mã của tôi không sử dụng phương pháp responds_to()
Nó sẽ là tuyệt vời nếu các giải pháp đã không được ở render tốt nghiệp/Thực responds_to như tôi sẽ phải thay đổi một số lượng đáng kể của các hành động. Có lẽ có một cách để cấu hình Rails để chỉ html mẫu được trả lại?
Điều đó không thực sự trả về 404, mặc dù nó chỉ hiển thị '404.html' làm phản hồi 200. Bạn sẽ cần phải thêm ': status => 404' (hoặc': status =>: not_found'). Tương tự, đối với 406, bạn sẽ muốn sử dụng ': status => 406' (hoặc': status =>: not_acceptable'). – Peeja
Điều này cũng không thành công nếu yêu cầu sử dụng tiêu đề 'chấp nhận' để yêu cầu loại phản hồi, vì nó không được lưu trữ trong các tham số – zimkies