2011-03-15 79 views
0

环境的Rails 3.0.4,1.8.7红宝石,狮身人面像0.99,Dreamhost的VPSThinking_Sphinx在控制台工作,但不是在Rails应用程序

我有一个简单的博客搜索设置如下:

控制器:

def blog_search_results  
    @blog_search_results = BlogPost.search(params[:search_param]) 
    respond_to do |format| 
     format.html { render :partial => 'blog_search_results', :layout=>false } 
     format.xml { render :xml  => @blog_search_results } 
    end  
end 

查看:

<% if [email protected]_search_results.empty? %> 
    <div id="main_content"> 
     <table id="pending_blog_list"><tr id="header"><td>Blog Title</td><td>Created by</td><td>Created on</td></tr> 
     <% @blog_search_results.each do |blog_post| %> 
      <tr> 
       <td><%= link_to blog_post.title, blog_named_link(blog_post, :show) %></td> 
       <td><%= blog_post.posted_by.display_name -%></td> 
       <td><%= blog_post.created_at.strftime("%x") -%></td> 
      </tr> 
     <% end %> 
     </table> 
     <%= will_paginate(@blog_search_results, {:form_name => :blog_show_params, :param_name => :page}) %> 
    </div> 
<% else %> 
    <h2>No blog posts that match your search were found</h2> 
<% end %> 

一切完全在我的开发ENVIRO市民明白。在生产环境中,当我启动一个控制台( “导轨c的制备”)和类型:

IRB(主):003:0> BlogPost.search( “视频”)

我用'视频'这个词得到预期的4个帖子结果。然而,在实际的应用程序,该控制器保持返回一个“404未找到”

Started GET "/blog_posts/blog_search_results?search_param=video" 
Processing by BlogPostsController#blog_search_resul as HTML 
Parameters: {"search_param"=>"video"} 
Completed in 27ms 
Rendered layouts/application.html.erb (22.3ms) 
Rendered public/404.html within layouts/blog_posts (24.7ms) 

我sphinx.yml设置如下:

staging: 
    pid_file: '/www.assetcorr.com/current/log/searchd.pid' 
    searchd_file_path: 'www.assetcorr.com/shared/db/sphinx' 
    bin_path: '/home/avitus/local/bin' 

我看到的索引中在共享/分贝/ sphinx文件夹。它出现在我运行ts:index后。 searchd.pid文件位于日志文件夹中,PID与searchd守护进程匹配。 bin_path是正确的,我已经将它添加到.bash_profile文件中的路径。

有没有人有任何想法可能会导致此?

- 更新 -

它看起来好像这不工作时,该控制器方法正在通过AJAX调用访问的原因:

$(document).ready(function() { 
    $("#search_param").observe_field(0.5, function() { 
    $.get("/blog_posts/blog_search_results", { search_param: this.value }, 
     function(data){ 
    $("#search_results").html(data); 
     }, "html"); 
    }); 
    }); 
}); 

当我删除了AJAX调用并诉诸普通的香草GET请求,然后它完美地工作。我不知道为什么会这样。

回答

0

问题出在思维狮身人面像的道路上。我希望你在Passenger上跑步。请在sphinx.yml中指定路径(永远是你的sphinx配置yml文件)

+0

我在Passenger上运行。我已将sphinx.yml设置粘贴到 – Andy 2011-03-16 17:33:50

+0

以上您需要在设置垃圾箱路径后重新启动乘客。 – Uddhava 2011-03-17 06:14:58

相关问题