Ruby on rails 思考狮身人面像和设计生产模式中不协同工作的路线?

Ruby on rails 思考狮身人面像和设计生产模式中不协同工作的路线?,ruby-on-rails,devise,thinking-sphinx,Ruby On Rails,Devise,Thinking Sphinx,在Rails 2.3.10应用程序上,思考狮身人面像(1.4.3)和设计(1.0.10)之间存在着(对我来说)非常奇怪的冲突。(这两个gem都在my environment.rb文件中配置) 就个人而言,一切都如预期的那样工作——Desive在注册和登录等方面工作良好,认为Sphinx会愉快地返回搜索结果 然而,在生产模式下(或者在开发模式下使用cache_classes=true),同时运行这两个类会使我的设计路线明显消失 在我的路线文件中,我有一个非常简单的“map.design\u for

在Rails 2.3.10应用程序上,思考狮身人面像(1.4.3)和设计(1.0.10)之间存在着(对我来说)非常奇怪的冲突。(这两个gem都在my environment.rb文件中配置)

就个人而言,一切都如预期的那样工作——Desive在注册和登录等方面工作良好,认为Sphinx会愉快地返回搜索结果

然而,在生产模式下(或者在开发模式下使用cache_classes=true),同时运行这两个类会使我的设计路线明显消失

在我的路线文件中,我有一个非常简单的“map.design\u for:customers”,因此我可以访问“/customers/sign\u”fine。此时,我安装了Thinking Sphinx gem,但没有定义索引

现在,只要我转到我的产品模型,并添加一个非常简单的索引设置,如:

define_index do
  indexes name
end
然后是404s页,带有:

ActionController::RoutingError (No route matches "/customers/sign_up" with {:method=>:get})
如果删除define_索引块,一切都会正常工作。正如我所说,当cache_类设置为false时,一切都可以正常工作

这是一个中等复杂的项目,因此可能是其他原因导致了问题的出现,但如果有人对如何解决这个问题有任何建议或建议,我将不胜感激

[编辑]

我一直在进一步调查,发现TS似乎会导致我的客户模型在生产中加载两次

因此,如果产品中没有define_索引块,我看到:

  • 正在加载product.rb
  • 正在加载customer.rb
。。。“设计”页面也能正常工作。将define_索引块添加到产品中,我看到:

  • 正在加载product.rb
  • 正在加载customer.rb
  • 正在加载customer.rb
。。。“设计”页面不起作用

我目前还不知道该怎么做——这可能是一条红鲱鱼——但我在这里包含了这些信息,以防给任何人敲响警钟


非常感谢,尼尔。

帕特·艾伦回答了这个关于斯芬克斯思考谷歌集团的问题,或者给出了一个可行的解决方案:

在我的config/sphinx.yml文件中,如果我通知Thinking sphinx要索引的特定模型,那么:

development: 
  indexed_models: 
    - Product 
    - AnyOtherIndexedModels
然后一切都按预期进行,我的设计路线也能正常工作。我把这些信息加进去,以防在类似情况下对未来的灵魂有所帮助。Google Groups线程位于此处:


我遇到了同样的问题,但它以不同的方式抬起了头,所以我花了一段时间才找到解决方法。不管怎样,我用Desive发了帖子。也许可以采取一些措施使这两个项目更好地协同工作。