Rails 3 - 渲染部分js.erb

时间:2011-03-16 12:39:36

标签: jquery ruby-on-rails-3

我有一个简单的搜索表单,如下所示:

应用程序/视图/搜索/ index.html.erb

<%= form_for @search, :as => :search, :remote => true, :url => {:action => "query"}, :html => {:id => 'search-form'} do |f| %>
  ...
<% end %

<div id="search-results"></div>

*应用程序/控制器/ search_controller.rb *

def index
  @search = SearchCriteria.new
end

def query
  @search = SearchCriteria.new(params[:search])

      # otherwise, perform search...
  @summaries = do_search @search
  respond_to do |format|
    format.js
  end
end

然后我有一个js.erb模板: *应用/视图/搜索/ _query.js.erb *

$('#search-results').update("<%= escape_javascript(render(@summaries)) %>");

但是,我没有看到任何被放入'搜索结果'div的内容。我需要某种模板来呈现“@summaries”吗?如果是这样,它会被命名,我将它放在哪里(即app / views / search?)(我正在使用jquery和rails 3)

感谢。

1 个答案:

答案 0 :(得分:10)

您应该重命名模板文件:

app/views/search/_query.js.erb => *app/views/search/query.js.erb

下划线是不必要的