2012-03-05 39 views
5

Tôi nhận được thông báo lỗi này khi bot google cố gắng truy cập vào một trong các bộ điều khiển của tôi.ActionView :: MissingTemplate: Thiếu mẫu

ActionView::MissingTemplate: Missing template channels/show, application/show with {:locale=>[:"sv-SE", :en], :formats=>["*/*;q=0.9"], :handlers=>[:erb, :builder, :haml]}. Searched in: * "/opt/www/app/releases/20120228181534/app/views" * "/opt/www/app/shared/bundle/ruby/1.9.1/gems/kaminari-0.13.0/app/views" 

Vấn đề là tôi không thể tái tạo. Lỗi xảy ra 121 lần trong tuần trước (theo airbrake).

Here là backtrace.

Row 18, đó là hàng chỉ đề cập đến việc tồn tại trong ứng dụng của tôi, là super một phần của mã này

def render(options = {}, extra_options = {}, &block) 
    if request.headers['X-PJAX'] or params[:no_layout] == "true" or params[:_pjax] 
    options[:layout] = false 
    end 
    super(options, extra_options, &block) 
end 

Phương pháp điều khiển channels#show trông như thế này

def show 
    @channel = # ... 
    @today  = # ... 
    @yesterday = # ... 
    @tomorrow = # ... 
end 

Thăm url đã nêu ra lỗi cho bot google không gây ra lỗi cho tôi.

Các url duy nhất không thành công là url chứa char đặc biệt như {"action"=>"show", "id"=>"25-jönköping", "controller"=>"channels"}. Giá trị ORIGINAL_FULLPATH được đặt thành /channels/25-j%c3%b6nk%c3%b6ping.

Tôi đang sử dụng đường ray 3.2.1.

+0

URL nào được đánh? Hãy thử tự mình tìm kiếm URL đó. Ngoài ra, hãy kiểm tra liên kết giới thiệu HTTP để xem trang đó đến từ trang nào. – nicholaides

+0

@nicholaides Tôi đã cố truy cập url trong câu hỏi, hoạt động. – Oleander

+0

URL trực tiếp cho ứng dụng này là gì? –

Trả lời

2

Tôi đã thấy lỗi này cũng như trên ứng dụng Rails 3 và đã ở trong cùng một thuyền về việc sao chép lỗi. Nhật ký có lỗi Mẫu bị thiếu, nhưng khi tôi thử yêu cầu theo cách thủ công, nó hoạt động tốt.

Tôi nghi ngờ rằng yêu cầu HTTP từ Google không thiết lập một mime mà Rails đang xử lý chính xác. Các giải pháp thô tôi thấy là để loại bỏ các điểm mẫu kịch câm, vì vậy

example/index.html.erb 

tại là

example/index.erb 

này dừng lỗi Template Thiếu, kể từ khi mẫu sẽ được sử dụng cho tất cả mimes.

+0

Bạn đã lưu tôi giờ! –

Các vấn đề liên quan