環境的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請求,然後它完美地工作。我不知道爲什麼會這樣。
我在Passenger上運行。我已將sphinx.yml設置粘貼到 – Andy 2011-03-16 17:33:50
以上您需要在設置垃圾箱路徑後重新啓動乘客。 – Uddhava 2011-03-17 06:14:58