У меня есть эта модель:
class Book < Item
validates :isbn, :presence => true, :uniqueness => true
has_many :book_chapters
has_many :chapters, :through => :book_chapters
searchable :auto_index => true, :auto_remove => true do
text :title
end
end
И тогда у меня есть этот контроллер:
class HomeController < ApplicationController
def index
@search = Book.search do
fulltext params[:search]
end
@books = @search.results
[... normal rest of code ...]
end
end
Поле «заголовок» наследуется от более общей модели Item. И когда контроллер Home пытается выполнить поиск, я получаю эту ошибку:
NoMethodError в HomeController # index
неопределенный метод `closed? ' для ноля: NilClass
В журнале также есть это дополнительное предупреждение:
ПРЕДУПРЕЖДЕНИЕ ОБ УСТРОЙСТВЕ: class_inheritable_attribute устарела, вместо этого используйте метод class_attribute. Обратите внимание, что их поведение немного отличается, поэтому сначала обратитесь к документации class_attribute. (вызывается из /Users/xxx/Sites/zigzag/app/models/book.rb:7)
Что относится к строке:
searchable: auto_index => true,: auto_remove => true do
в book.rb
Есть идеи, почему я получаю эту ошибку? В других подобных сообщениях о переполнении стека кажется, что люди забыли включить сервер солнечных пятен. Но я бегу, и он работает нормально. Я могу хорошо ориентироваться в Solr Admin. Спасибо!