我正在遵循railscasts rails ajax教程并遇到了一些麻烦,我错过了什么还是本教程仅用于pre rails 3.1?
控制器:
def index
@notes = Note.search(params[:search])
end
型:
class Note < ActiveRecord::Base
def self.search(search)
if search
where('name LIKE ?', "%#{search}%")
else
scoped
end
end
end
视图:
<%= form_tag notes_path, :method => 'get', :id => "notes_search" do %>
<p>
<%= text_field_tag :search, params[:search] %>
<%= submit_tag "Search", :name => nil %>
</p>
<div id="notes"><%= render 'notes' %></div>
<% end %>
咖啡脚本文件:
jQuery ->
# Ajax sorting and pagination on click
$('#notes td.sortable a, #notes .pagination a').live('click', ->
$.getScript(this.href)
false
)
# Ajax search on submit
$('#notes_search').submit( ->
$.get(this.action, $(this).serialize(), null, 'script')
false
)
# Ajax search on keyup
$('#products_search input').keyup( ->
$.get($("#notes_search").attr("action"), $("#notes_search").serialize(), null, 'script')
false
)
错误出现在以下行:
ActionView::MissingTemplate in Notes#index
<div id="notes"><%= render 'notes' %></div>
ActionView::MissingTemplate
异常基本上是说您尝试渲染的操作没有视图文件。
您需要有一个名为"_notes.html.erb"的部分视图才能正常工作。在视图中,您应该具有类似的东西:
<%= hidden_field_tag :direction, params[:direction] %>
<%= hidden_field_tag :sort, params[:sort] %>
<%= will_paginate @notes %>
我从您 http://railscasts.com/episodes/240-search-sort-paginate-with-ajax 引用的教程中获取了该代码,也许您没有这些参数或尚未安装 gem will_paginate请根据您的需要进行调整。
这与本教程完全无关,但您为什么不考虑使用数据表。做与railscasts教程相同的事情,并且还具有完整的文档和API,使其完全可定制。