我是Rails的新手,我正在嘗試搜索我的應用程序。未定義的方法`text_search'for#<Array:0x00000005876838>
我使用pg_search
,在我做分頁之前。搜索和分頁工作得很好,但一個地方我得到一個錯誤:
undefined method `text_search' for #
有人可以幫我解釋一個錯誤嗎? 我試圖尋找答案,但我不明白我的情況中的這個錯誤。
我的用戶控制器:
require 'will_paginate/array'
class UsersController < ApplicationController
before_action :set_agent, only: [:index, :new, :create] # For nested /users/:user_id/users
before_action :authenticate_user!, only: [:show, :edit, :update]
before_action :authenticate_admin!, only: [:accept_agent]
respond_to :js, :only => [:users_list, :admins_list, :locked_list, :agents_list]
def index
users = filter_by_params(params, @agent)
@users = users
@users = @users.text_search(params[:query]).paginate(:page => params[:page], :per_page => 10)
end
和我model/user.rb
include PgSearch
pg_search_scope :search_name, :associated_against => {
:orders => [:client_name]}
def self.text_search(query)
if query.present?
search_name(query)
else
all
end
end
嘗試:User.text_search(params [:query])。paginate(:page => params [:page],:per_page => 10)。或者只是刪除自己,如果你想調用特定的對象。 – 7urkm3n
text_search是User類中的一個類方法。要調用它們是正確的是User.text_search(...) –
儘量保持您的代碼最小化。在這裏你分配給變量'users',然後去並立即重新分配給'@ users'。如果這是您的目標,您可以直接將它們直接分配給「@用戶」。 – tadman