AJAX наблюдения не работает на рубине на рельсах - PullRequest
0 голосов
/ 02 октября 2010

Я пытаюсь создать какой-то поиск в приложении ruby ​​on rails и хочу добавить поддержку ajax. Я хочу, когда пользователь вводит в поле поиска слово, ajax автоматически генерирует результаты. И я обыскал почти весь интернет и не смог найти ответ на следующий вопрос:

Когда я набираю текст в моей области, ничего не происходит. Это как ajax вообще не работает. Проблема Tre в наблюдаемом поле, которое должно наблюдать мой id = 'query', но кажется, что оно ничего не делает

Я использую Prototype 1.6.1 и новейшую версию рельсов. Код, который я написал:

зритель:

    <form name="sform" action="" style="display:inline;">
<label for="item_name">Filter on Property No  : </label>
<%= text_field_tag(:query, params['query'], :size => 10, :id => 'query' ) %>
</form>

<%= image_tag("/images/system/blue_small.gif",
              :align => "absmiddle",
              :border => 0,
              :id => "spinner",
              :style =>"display: none;" ) %>
</p>

<%= observe_field 'query',  :frequency => 1,
         :update => 'table',
         :before => "$('#spinner').show()",
         :success => "$('#spinner').hide()",
         :url => {:action => 'list'},
         :with => 'query' %>

<div id="table">
<%= render :partial => "items_list" %>
</div>

А мой контроллер:

  def list


    sort = case params['sort']
           when "Title"  then "title"
           when "address"   then "address"
           when "close date" then "close_date"
           when "property_no_reverse"  then "property_no DESC"
           when "address_reverse"   then "address DESC"
           when "close_date_reverse" then "close_date DESC"
           end

    conditions = ["title LIKE ?", "%#{params[:query]}%"] unless params[:query].nil?

    @total = Message.count(:conditions => conditions)
     @accounts = Message.paginate :page => params[:page], :per_page => 10, :order => sort, :conditions => conditions
    if request.xml_http_request?
      render :partial => "items_list", :layout => false
    end

  end

Буду очень признателен за любую помощь!

1 Ответ

0 голосов
/ 02 октября 2010

Вы сказали, что используете новейшую версию Rails, если это Rails 3.0.0, тогда наблюдайте и то, как они работают с javascript, совершенно иное.Либо перейдите на Rails 2.3.8 (я бы не стал), изучите новый путь, либо используйте старый путь в Rails 3.0.0

Новый путь в Rails 3.0.0: http://www.simonecarletti.com/blog/2010/06/unobtrusive-javascript-in-rails-3/

Старый способ в Rails 3.0.0: http://github.com/rails/prototype_legacy_helper

Если вы хотите 2.3.8, я могу показать вам поле наблюдения, просто дайте мне знать ...

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