

検索フォームから検索を行うときに以下の写真のようなエラーがでます。

[![画像の説明をここに入力](https://i.stack.imgur.com/Ar3uu.png)](https://i.stack.imgur.com/Ar3uu.png)

[code]

    ActionController::UnknownFormat (SearchsController#index is missing a template for this request format and variant.
    
    request.formats: ["text/html"]
    request.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.):
    
[/code]

ターミナルを見るとapp/views/blog/index.html.erbがないように書かれていますが、routeもviewも設定してあると思います。何か他に不足しているのでしょうか。  
ご教授願いただけたら幸いです。  
何卒宜しくお願い致します。

以下画像投稿のコードとファイル（同じ内容）

[code]

    rails g model Search name:string
    rake db:migrate
    
[/code]

* * *

search.rb

[code]

    class Search < ApplicationRecord
        def self.search(search) #self.でクラスメソッドとしている
            if search # Controllerから渡されたパラメータが!= nilの場合は、titleカラムを部分一致検索
              Search.where(['name LIKE ?', "%#{search}%"])
            else
              Search.all #全て表示。
            end
        end
    end
    
[/code]

* * *

index.html.erb

[code]

    <%= form_tag searchs_path, :method => 'get' do %> 
                          <p>
                            <%= text_field_tag :search, params[:search] %>
                            <%= submit_tag "Search", :name => nil %>
                          </p>
                        <% end %>
    <%= yield %>
    
[/code]

* * *

routes.rb

[code]

    　　#get 'searchs/index'
    　　#get "blog/index" => "searchs#index"
    resources:searchs
    
[/code]

* * *

searchscontroller.rb

[code]

    class SearchsController < ApplicationController
    
        def index
        #ViewのFormで取得したパラメータをモデルに渡す
            @projects = Search.search(params[:search])
        end
    end
    
[/code]

[![search.rbのモデルファイル作成](https://i.stack.imgur.com/Xoc3o.png)](https://i.stack.imgur.com/Xoc3o.png)  
[![index.html.erbに検索フォーム設置](https://i.stack.imgur.com/MxHl0.png)](https://i.stack.imgur.com/MxHl0.png)  
[![routes.rb](https://i.stack.imgur.com/45Oih.png)](https://i.stack.imgur.com/45Oih.png)  
[![searchs_controller.rb](https://i.stack.imgur.com/cfY07.png)](https://i.stack.imgur.com/cfY07.png)


CC BY-SA 3.0
2018-04-18T19:45:59.370
43362
2018-04-21T09:25:33.750
2018-04-21T09:25:33.750
5288
28220
question
ruby-on-rails ruby
Ruby on Railsで検索機能を実装したらtext/htmlがない、というエラーが出る


> SearchsController#index is missing a template for this request format and
> variant.

というエラーなので、

> app/views/blog/index.html.erbがない

ではなく app/views/searches/index.html.erb が必要なのでは? あるいは、 render メソッドに
BlogController#index のテンプレートを使うように明示。


CC BY-SA 3.0
2018-04-21T04:03:26.283
43449
2018-04-21T04:03:26.283
17037
43362
answer