ActiveRecord::StatementInvalid in Tasks::Searches#indexを解決し検索結果を表示できるようにしたい
RailsでToDoアプリのようなものを作っています。
現在タスク一覧画面に検索フォームを設置し、検索ができるような機能を実装中です。
そこでユーザーが文字を入力し検索したものを表示させる記述を行ったのですが以下のエラーが発生してしましました。
発生している問題・エラーメッセージ
ActiveRecord::StatementInvalid in Tasks::Searches#index Mysql2::Error: Unknown column 'text' in 'where clause': SELECT `tasks`.* FROM `tasks` WHERE (text LIKE('%%'))
該当のソースコード
- app/models/task.rb
model
1class Task < ApplicationRecord 2 belongs_to :user 3 has_many :comments 4 5 def self.search(search) 6 if search 7 Task.where('text LIKE(?)', "%#{search}%") 8 else 9 Task.all 10 end 11 end 12end
- app/views/tasks/searches/index.html.haml
view
1= form_with(url: tasks_searches_path, local: true, method: :get, class: "search-form") do |f| 2 = f.text_field :keyword, placeholder: "Search for tasks", class: "search-input" 3 = f.submit "Search", class: "search-btn" 4.contents.row 5 - @tasks.each do |t| 6 = render partial: "tasks/task", locals: { t: t }
- app/controllers/tasks/searches_controller.rb
controller
1class Tasks::SearchesController < ApplicationController 2 def index 3 @tasks = Task.search(params[:keyword]) 4 end 5end
試したこと
恐らくミス記入が原因と思いましたが、特に記述ミスと思われるところはありませんでした。
こちらの原因がおわかりの方がいましたら、どうか教えていただけらたと思います。
よろしくお願い致します。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/06/16 11:43
2020/06/16 11:56
2020/06/16 12:30
2020/06/16 13:37