Я новичок в Rails, и я пытаюсь выполнить поиск для своего приложения.Неопределенный метод `text_search 'для # <Массив: 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). Или просто удалите self uf u хотите вызвать определенный объект. – 7urkm3n
text_search - метод класса внутри класса User. Чтобы называть их правильным, User.text_search (...) –
Постарайтесь, чтобы ваш код был минимальным. Здесь вы назначаете переменную 'users', а затем переходите и немедленно переназначаете ее на' @ users'. Вы можете просто назначить непосредственно «@ users» в первую очередь, если это ваша цель. – tadman