Vì một số lý do, trình thu thập thông tin của facebook đang kích hoạt phản hồi json trong các hành động đường ray của tôi. Điều này làm cho hành động chỉ trả về biểu diễn json của đối tượng, không có đánh dấu html bình thường + mở thẻ đồ thị. Tôi đã thử nghiệm này với đường ray 3.2.6. Tôi sử dụng trình gỡ lỗi đồ thị mở facebook để xem những gì scraper đang thấy: http://developers.facebook.com/tools/debug.facebook trình thu thập biểu đồ mở kích hoạt phản hồi json trong đường ray hành động
Mã rất đơn giản. Hãy tưởng tượng một hành động "hiển thị" đơn giản cho một đối tượng, ví dụ như một Người dùng. Nó kết thúc bằng:
respond_to do |format|
format.js { render :json => @this.to_json }
format.html
end
Trình thu thập thông tin của facebook đang kích hoạt định dạng.js, khiến thẻ biểu đồ mở không được hiển thị. Bất kỳ ý tưởng nào tại sao điều này có thể xảy ra hoặc cách khắc phục? Cảm ơn.
Ngoài ra còn có các đại lý người dùng “thực” nói rằng họ sẽ chấp nhận */* - ví dụ (IIRC) cũ IE sẽ thực hiện việc đó khi tải lại trang. Vì vậy, có lẽ tốt nhất để thiết lập ứng dụng của bạn rằng nó phục vụ HTML như là ưu tiên số 1. – CBroe
Điều này dường như không hoạt động, tôi đã thử các đơn đặt hàng khác nhau cho format.html, format.js và format.json. Có vẻ như Rails đang diễn giải 'HTTP_ACCEPT' */* là format.json. Bất kỳ cách nào tôi có thể sửa lỗi này? Tôi đã đăng câu hỏi của mình ở đây: http://stackoverflow.com/questions/12094683/facebook-open-graph-action-rails-return-json-or-html – Dean