Ajax observe_field没有在rails上使用ruby

时间:2010-10-02 01:15:07

标签: ruby-on-rails ajax

我正在尝试在我的ruby on rails应用程序中创建某种搜索,我想添加ajax支持。我想当用户在搜索框中输入一个单词时,ajax会自动生成结果。我搜索了几乎所有的互联网,我找不到以下问题的答案:

当我输入文本区域时没有任何反应。这就像ajax根本不起作用。 Tre问题出现在observe_field中,它应该观察我的id ='query',但它似乎没有做任何事情

我正在使用Prototype 1.6.1和最新版本的rails。 我写的代码是:

查看器:

    <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 :(得分:0)

你说你使用最新版本的Rails,如果那是Rails 3.0.0然后observe_field和他们做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我可以告诉你观察场地,请告诉我......