いつもお世話になっております。
毎度初心者のとるに足らない質問ですいません。
今回、本「基礎 ruby on rails 改訂3版」を参考にmemberテーブル内の曖昧検索を行っていますが、
undefined method `query'
というエラーメッセージがでます。
本は、SQLiteをしようしており
私は、MYsqlを使用しております。
SQLが違うためのエラーでしょうか。
ソースは次の通りです。
index.html.erb
<p>検索したい社員番号,名前を入力してください。</p> <%= form_tag :search_members, method: :get do %> <p><%= text_field_tag "q",params[:q] %> <%= submit_tag "検索"%></p> <% end %> <% if @members.present? %> <table class= "list"> <tr> <th>社員番号</th> <th>氏名</th> <th>操作</th> </tr> <% @members.each do |member| %> <tr> <td><%= member.member_id%></td> <td><%= member.name%></td> <td> <%= link_to "詳細" ,controller: "members", action: "show", id: member %>| <%= link_to "変更" ,controller: "members", action: "edit", id: member %>| <%= link_to "削除", member, method: :delete, data: {confirm: "本当に削除しますか?"}%> </tr> <% end %> </table> <% else %> <p>登録されている社員情報はありません。</p> <% end %>
members_controller.rb
class MembersController < ApplicationController def index @members = Member.order("member_id") end def search @members = Member.search(params[:q]) render "index" end end
member.rb
class Member < ActiveRecord::Base class << self #検索のためにクラスメソッドを定義 def search(query) rel = order("member_id") if query present? rel = rel.where("member_id LIKE ? OR name LIKE?", "%#{query}%","%#{query}%") end rel end end end
勉強不足ですがどうかご教授よろしくお願いします。
回答2件
あなたの回答
tips
プレビュー