【发布时间】:2014-02-25 16:39:34
【问题描述】:
我有一个表格:
<% form_tag({:controller => "/faq", :action => 'search_ajax'}, :update => "help_results", remote: true) do %>
这将进入应该更新 help_results div 的 search_ajax 操作。该动作应该在最后呈现部分,但我肯定有语法问题:
def search_ajax
@categories = HelpCategory.find(:all)
if params[:query].not_blank? && params[:query] != "Search for help about..."
@query = params[:query]
@terms = params[:query].split.map {|t| "%#{t.downcase}%" }
options = {
:allow_partial_match => true,
:order => 'fulltext_match_score DESC',
}
@results = SearchableText.search_model(HelpItem, @query, options).uniq
@results = {"Search Results" => @results} if !@results.blank?
@complicated_query = HelpItem.is_complicated_query?(@query)
@search_included = true
else
@results = HelpItem.all.group_by {|item| item.category.name rescue "Misc"}
@search_included = false
end
render :partial => "results"
respond_to do |format|
format.js do
render :partial => 'results'
end
format.html do
render :partial => 'results'
end
end
结束
部分 respond_to 区域被注释掉了。我收到错误消息:
ActionController::DoubleRenderError in FaqController#search_ajax
我知道如果我将 remote => true 助手添加到我的表单中,控制器操作需要响应 js。我很确定这是一个语法错误。 respond_to 也出现在我的控制器操作的末尾。
【问题讨论】:
-
请添加
search_ajax操作的全部内容。通常这些双重渲染错误与在同一操作中调用多个render或redirect_to方法有关。
标签: ruby-on-rails ajax