0
私は管理モデルで検索フィールドを実装する際にStuck.ioからチュートリアルを行っているので、誰かが特定の管理者を検索できます。フォームが表示されますが、検索を使用しようとするとエラーフィールドが表示され、どこが間違っているのか分かりません。未定義のローカル変数またはメソッド `params '(検索フィールド実装時)
私は取得しています正確なエラーは次のとおりです。
NameError at /admins
undefined local variable or method `params' for #<Class:0x007f91e39df950>
マイカスタム工夫管理コントローラ:私のカスタム管理コントローラの(インデックスとショーページを作成する)
class AdminController < ApplicationController
before_action :authenticate_admin!
def index
@admins = Admin.all
# Search Query
@admins = Admin.search(params[:search])
end
def show
@admin = Admin.find_by_admin_ident(params[:id])
end
end
ルート:
admins GET /admins(.:format) admin#index
admin GET /admins/:id(.:format) admin#show
私の管理モデル:検索方法
class Admin < ActiveRecord::Base # Search Functionality def self.search(search) if search @admins = Admin.where(["name LIKE ?","%#{params[:search]}%"]) else all end end end
そして最後に、私の検索フォーム:あなたの入力を事前に
<div class="col-md-4">
<div class="info-block">
<%= form_tag admins_path, :method => 'get' do %>
<%= text_field_tag :search, params[:search], :class => 'form-control', :id => 'admin-search-field' %>
<center><%= submit_tag "Search Users", :class => 'btn btn-default btn-sm', :id => 'search-btn' %></center>
<% end %>
</div>
</div>
ありがとう!もっと必要なものがあれば教えてください!
すごいです!ここでのちょっとした疑問は、火災や姓で複数の列を検索する方法はありますか?キャップ文字が義務ではない場所を検索することはできますか?今私のデモで私は3人のテストユーザーがいるが、私は小文字の名前を表示しないだろうか?あなたには最高の気分!ありがとう –
はい、もちろんです。単純な機能がほしいのであれば、手動で実装することもできます。 PostgreSQLでは大文字と小文字を区別しないために 'LIKE'ではなく' ILIKE'を使います。より高度なツールを探しているなら、Ransack(https://github.com/activerecord-hackery/ransack)のようなものをお勧めします - このスクリーンキャストをチェックしてください(http://railscasts.com/episodes/370 -ranack)をクイックスタートガイドとして使用します。 –
美しい!どうもありがとう! –