我怀疑要么我做错了,要么我所遵循的教程已经过时了。首先,我按如下方式实施了普通搜索:
控制器
writeLines(as.character(df[df$Height/df$Length >2, "Name"]), con='Names.txt')
的index.html
def filter
if params[:filter]
@productions = Production.where('productions.status like ?', "%#{Production.statuses[params[:filter]]}%")
else
@productions = Production.all
end
end
然后我开始实现一个实时jquery / ajax搜索,对以下文件进行一些更改并创建一个部分模板。
部分模板 _fast_filter.html.erb
<%= form_tag [:filter, :productions], :method => 'get', :id => "prod_filter" do %>
<p>
<%= text_field_tag :filter, params[:filter] %>
<%= submit_tag "Filter", :status => nil %>
</p>
<% end %>
<div id="fast_filter"><%= render 'fast_filter' %></div>
<br>
我在 application.js
中添加了此内容<table>
<thead>
<tr>
<th>Name</th>
<th>Director</th>
<th>Status</th>
<th colspan="3"></th>
</tr>
</thead>
<tbody>
<% @productions.each do |production| %>
<tr>
<td><%= production.name %></td>
<td><%= production.director %></td>
<td><%= production.status %></td>
<td><%= link_to 'Show', production %></td>
<td><%= link_to 'Edit', edit_production_path(production) %></td>
<td><%= link_to 'Destroy', production, method: :delete, data: { confirm: 'Are you sure?' } %></td>
</tr>
<% end %>
</tbody>
</table>
index.js.erb
$(function(){
$("body").on('click', "#fast_filter th a", function() {
$.getScript(this.href);
return false;
});
$("#prod_filter input").keyup(function(){
$.get($("#prod_filter").attr("action"), $("#prod_filter").serialize(), null, "script");
return false;
});
});
我正在使用rails 4.2。现在,当在文本字段中输入关键字时,我没有看到任何实时搜索,因为我输入了关键字,也没有得到正确的搜索结果。