试图在rails上实现ajax实时搜索

时间:2017-11-30 16:29:17

标签: jquery ruby-on-rails

我怀疑要么我做错了,要么我所遵循的教程已经过时了。首先,我按如下方式实施了普通搜索:

控制器

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。现在,当在文本字段中输入关键字时,我没有看到任何实时搜索,因为我输入了关键字,也没有得到正确的搜索结果。

0 个答案:

没有答案