Metasearch Live Search - PullRequest
       1

Metasearch Live Search

0 голосов
/ 17 февраля 2011

Tring для изменения базового поиска railscasts, AJAX с метапоиском.

class CustomersController < ApplicationController
  def index
    @search = Customer.search(params[:search])
    @customers = @search.all)
  end
end

index.html.erb

    <%= form_for @search, :html => {:method => :get}, :id => "customers_search", :remote => true do |f| %>
        <%= f.label :firstname_or_lastname_contains %>
        <%= f.text_field :firstname_or_lastname_contains %><br />
        <%= f.submit %>
    <% end %>

    <div id="customers"> <%= render 'customers' %> ... all the customer basic layout
    </div>

    <p><%= link_to "New Customer", new_customer_url %></p>

index.js.erb

$("#customers").html("<%= escape_javascript(render("customers")) %>");

application.js

$(function() {
  $("#customers_search input").keyup(function() {
    $.get($("#customers_search").attr("action"), $("#customers_search").serialize(), null, "script");
    return false;
  });
});

1 Ответ

3 голосов
/ 20 февраля 2011

Я не уверен, что вы смогли заставить это работать, но я смог сделать это, осознав, что форма поиска по умолчанию названа meta_search, например, "#customer_search", поэтому удалите: id => от form_for

index.html.erb

<%= form_for @search, :remote => true do |f| %>
        <%= f.label :firstname_or_lastname_contains %>
        <%= f.text_field :firstname_or_lastname_contains %><br />
        <%= f.submit %>
<% end %>

application.js

$(function() {
  $("#customer_search input").keyup(function() {
    $.get($("#customer_search").attr("action"), $("#customer_search").serialize(), null, "script");
    return false;
  });
});

Я еще не выяснил, как заставить заголовок документа отображаться в удобочитаемом виде из эпизода 246 index.js.erb

$("#customers").html("<%= escape_javascript(render("customers")) %>");
document.title = "<%= escape_javascript("#{params[:search].to_s.titleize} - Page #{params[:page] || 1}") %>";

как это печатается

{&quot;Station Name Or Address Contains&quot;=&gt;&quot;As&quot;} - Page 1

к строке заголовка и истории

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...