2011-03-15 102 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

相關問題