35016


Ruby on Railsで「配列の画像URLにアクセスし、画像を表示する」サイトをつくっています。  
localhostでは動作するのですが、Herokuにデプロイしxxx.herokuapp.comにアクセスすると、以下のエラーとなり画像が表示されません。  
原因はなんでしょうか。

[code]

    ActionController::UnknownFormat (HomeController#index is missing a template for this request format and variant.
    
     NOTE! For XHR/Ajax or API requests, this action would normally respond with 204 No Content: an empty white screen. Since you're loading it in a web browser, we assume that you expected to actually render a template, not nothing, so we're showing an error to be extra-clear. If you expect 204 No Content, carry on. That's what you'll get from an XHR or API request. Give it a shot.):
    
    request.formats: ["text/html"]
    
    request.variant: []
    
[/code]

コードは以下の通りです。  
home_controller.rb

[code]

    class HomeController < ApplicationController
      def index
        @imgurl_array = ["http://www.sample.com/sample.gif","https://sample.com/sample1.jpg","https://sample.com/sample2.jpg"]
      end
    end
    
[/code]

index.html.erb

[code]

    <p>
    <% @imgurl_array.each { |imgurl| %>
    <img src=<%= imgurl %>><br>
    <% } %>
    </p>
    
[/code]


CC BY-SA 3.0
2017-01-11T21:46:04.063
31784
2017-05-25T15:33:26.643
2017-01-12T10:25:22.363
18443
18443
question
ruby-on-rails heroku
ActionController::UnknownFormat


> ActionController::UnknownFormat (HomeController#index is missing a template
> for this request format and variant.

エラーメッセージの通り `app/views/home/index.html.erb` がないよ、というエラーです。  
localhostでは動作するということは、（バージョン管理をしている場合は）そのファイルがコミットできていないというケースが考えられます。純粋にコミットもれの他にも
`.gitignore` などステージするファイルから除外する設定を行なっている場合はそこも見直すと良いかもしれません。

余談ですが、Rails 4 では今回のようにファイルがない場合はエラーになっていましたが、 Rails 5 からは
`ActionController::UnknownFormat` になりました。  
日本語の解説は見つけられなかったため英語ですが、以下が参考になります。

<https://blog.bigbinary.com/2016/07/03/controller-actions-default-no-content-
in-rails-5-if-template-is-missing.html>


CC BY-SA 3.0
2017-05-25T15:33:26.643
35016
2017-05-25T15:33:26.643
22531
31784
answer