質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
86.12%
Ruby on Rails 6

Ruby on Rails 6は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

解決済

ActiveRecord::StatementInvalid in Hotels#indexというエラーを解決したいです

sakai_1326
sakai_1326

総合スコア3

Ruby on Rails 6

Ruby on Rails 6は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

1回答

0グッド

0クリップ

150閲覧

投稿2022/12/06 12:43

前提

度々の質問失礼いたします。
Rubyでホテル検索サイトを作っている者です。
検索機能を付けて、自分で検索を行ったところ、以下のエラーが出てしまいました。

発生している問題・エラーメッセージ

Showing C:/Users/nekob/Desktop/travel/app/views/hotels/index.html.erb where line #13 raised: SQLite3::SQLException: no such column: body

該当のソースコード

<%= link_to "新規追加ページへ", new_hotel_path %> <div class="hotels-container"> <% @hotels.each do |t| %> <div class="hotel"> <%= t.user.email %> <%= t.name %>

試したこと

Resourceを使った直後にも同じエラーが出ましたが、indexページを手動で開かないことで防止していました。しかし、検索結果をindexから抽出するせいか、同じエラーが出るようになってしまいました。検索機能を付けるために、viewのコードは以下のように書いています。

<h3>宿泊先を検索</h3> <%= form_tag({controller:"hotels",action:"index"}, method: :get) do %> <%= text_field_tag :search %> <%= submit_tag '検索する' %> <% end %>

controllerのコードはこのように書いています。

def index if params[:search] == nil @hotels= Hotel.all elsif params[:search] == '' @hotels= Hotel.all else @hotels = Hotel.where("body LIKE ? ",'%' + params[:search] + '%') end end

補足情報(FW/ツールのバージョンなど)

Rails 6.1.7
Windows11

以下のような質問にはグッドを送りましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

グッドが多くついた質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

下記のような質問は推奨されていません。

  • 間違っている
  • 質問になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

適切な質問に修正を依頼しましょう。

maisumakun

2022/12/06 14:18

エラーメッセージを素直に読むと、「bodyというカラムがありません」となるのですが、DB構造は確認してみましたか?
sakai_1326

2022/12/07 06:46

カラム名を例文と同じように打ってしまったために起こったエラーでした! 大変お騒がせ致しました……

回答1

0

ベストアンサー

エラーの通り DB table に body カラムがないんじゃないでしょうか?

投稿2022/12/07 01:31

yuma.inaura

総合スコア1285

良いと思った回答にはグッドを送りましょう。
グッドが多くついた回答ほどページの上位に表示されるので、他の人が素晴らしい回答を見つけやすくなります。

下記のような回答は推奨されていません。

  • 間違っている回答
  • 質問の回答になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

このような回答には修正を依頼しましょう。

回答へのコメント

sakai_1326

2022/12/07 06:46

その通りで、カラム名を間違えて入力しておりました……あまりにも初歩のミスで恥ずかしい限りです。お教えいただきありがとうございました……!!

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
86.12%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

Ruby on Rails 6

Ruby on Rails 6は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。