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>
預先感謝您的輸入!請讓我知道如果你需要更多的東西!
真棒該訣竅!在這裏只是一個側面的問題,有沒有什麼辦法可以搜索多列,即通過火災和姓氏?並搜索哪些字母不是有限的?現在在我的演示中,我有三個測試用戶,但是當我小寫他們的名字時,它不會顯示?生病給你最好!謝謝 –
當然可以。如果你只是想要一些簡單的功能,那麼你可以手動實現 - 例如在Postgresql中,只需使用'ILIKE'而不是'LIKE'來區分大小寫。如果你正在尋找一些更高級的工具,我會推薦一些像Ransack(https://github.com/activerecord-hackery/ransack)的東西 - 看看這個截屏視頻(http://railscasts.com/episodes/370 - 快速入門指南)。 –
美麗!非常感謝! –