У меня есть эта модель:
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
Поле title унаследовано от более общей модели Item. И когда домашний контроллер пытается выполнить поиск, я получаю эту ошибку:
NoMethodError в HomeController#index
неопределенный метод `закрыт?' для нуля: NilClass
В журнале также есть это дополнительное предупреждение:
ПРЕДУПРЕЖДЕНИЕ ОБ УСТАРЕНИИ: class_inheritable_attribute устарел, вместо этого используйте метод class_attribute. Обратите внимание, что их поведение немного отличается, поэтому сначала обратитесь к документации class_attribute. (вызывается из /Users/xxx/Sites/zigzag/app/models/book.rb:7)
Что относится к строке:
доступен для поиска :auto_index => true, :auto_remove => true сделать
в книге.рб
Любые идеи, почему я получаю эту ошибку? В других подобных сообщениях о переполнении стека кажется, что люди забыли включить сервер солнечных пятен. Но я запускаю его, и он работает нормально. Я могу нормально ориентироваться в Solr Admin. Спасибо!
undefined method closed?
. Наконец, попробуйте обновить исходный код в git до последней версии, чтобы узнать, исправлена ли ошибка с тех пор. - person Nick Zadrozny   schedule 03.11.2011