🫠

ActionController::UnknownFormat

2023/07/06に公開

🍍今の状況

<今回の理想>
検索したら下に検索結果が出るという感じにしたい

  • 検索機能を作成していた。
  • 検索ボタンも表示されるようになったのでいざ!検索🔍と思ったらエラー

🍍エラー文からわかること

  • ActionController::UnknownFormat in UsersController#search
    →ユーザーコントローラーsearchでフォーマットが見つからないよ

  • UsersController#search is missing a template for this request format and variant.
    →ユーザーコントローラーsearchでリクエストしてるフォーマットがないかなんか違うね

みたいなかんじ?つまり

🍍解決方法

表示させたいファイルの名前が適切であるか

スペルミスしてない?ファイルの位置をちゃんと表せるように記述してる?
ex) books/show なのに showのみしか記入していない

search後に表示したいファイルをちゃんと指定してるか

私の場合は今回こちらでした。
そのためrender :showを追記しエラー表示はなくなりました🎉

users_controller.rb
 def search
    @user = User.find(params[:user_id])
    @books = @user.books 
    @book = Book.new
    
    if params[:created_at] == ""
      @search_book = "日付を選択してください"
    else
      create_at = params[:created_at]
      @search_book = @books.where(['created_at LIKE ? ', "#{create_at}%"]).count
    end
    render :show
  end

🍍まとめ

今回は、検索結果のviwe先を記述していなかったからエラーが発生していたみたい。
viewを作らずに先にコントロールだけ設定してしまうときや今回のようなときによく発生するエラーみたい。
ちょっと記述したら、どういう動きするか確認しないとどこを書いちゃったからエラーがでてるのかわかんなくなっちゃうと思ってすぐ動きを確認していたけどその丁寧さもあだとなるときがあるんだね😟
エラー文が理解できるようになってきたらエラー見たらどこが悪かったのかすぐ分かるようになれるんだけどね💦

Discussion