У меня, как мне кажется, очень странный конфликт между Thinking Sphinx (1.4.3) и Devise (1.0.10) в приложении Rails 2.3.10.(Оба драгоценных камня настроены в моем файле environment.rb)
По отдельности все работает как положено - Devise отлично работает для регистрации и входа в систему и т. Д., Thinking Sphinx с радостью возвращает результаты поиска.
Однаков производственном режиме (или с cache_classes = true в режиме разработки) одновременное выполнение обоих вместе приводит к исчезновению всех моих разработанных маршрутов.
В моем файле маршрутов у меня есть очень простая "map.devise_for: Customers", иЯ могу, следовательно, получить доступ к "/ Customers / Sign_up" хорошо.На данный момент у меня установлен гем Thinking Sphinx, но индексы не определены.
Теперь, как только я перейду к своей модели Product и добавлю очень простую настройку индекса, например:
define_index do
indexes name
end
затем страница 404s, с:
ActionController::RoutingError (No route matches "/customers/sign_up" with {:method=>:get})
Если я затем удалю блок define_index, все будет работать нормально.Как я уже сказал, все также отлично работает с параметром cache_classes, установленным в false.
Это умеренно сложный проект, поэтому возможно, что что-то другое вызывает проблему, которая проявляется таким образом, но если у кого-то есть какие-либо предложенияили посоветуйте, как решить эту проблему, я был бы очень признателен.
[EDIT]
Я продолжил расследование и обнаружил, что TS, по-видимому, приводит к тому, что моя модель Customer загружается дважды в производстве.
Итак, без блока define_index в Продуктах я вижу:
- Загрузка product.rb
- Загрузка customer.rb
... истраница разработки работает.Добавляя блок define_index в продукты, я вижу:
- Загрузка product.rb
- Загрузка customer.rb
- Загрузка customer.rb
... и страница Devise не работает.
В настоящее время я не уверен, что с этим делать - и это может быть красная сельдь - но я включаю информацию здесь, если она звонитС кем угодно!
Большое спасибо, Нил.