2010-10-02 43 views
0

我想在我的紅寶石軌道應用程序中創建某種搜索,我想添加ajax支持。我希望當用戶在搜索框中輸入一個單詞時,ajax會自動生成結果。我搜索了幾乎所有的互聯網,我無法找到以下問題的答案:阿賈克斯observe_field不工作在軌道上的紅寶石

當我輸入我的文本區域時,什麼也沒有發生。這就像阿賈克斯根本不工作。 Tre問題是在observe_field應該觀察我的id ='查詢',但它看起來好像沒有做任何事情

我正在使用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> 

而且我CONTROLER是:

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 

我將不勝感激任何幫助我能!

回答

0

你說你使用的是最新版本的Rails,如果是Rails 3.0.0,那麼observe_field和他們做JavaScript的方式肯定是不同的。選擇降級至2.3.8的Rails(我不會),學習新的方法,或者使用的Rails 3.0.0

新路舊的方式在Rails的3.0.0:對Rails 3.0 http://www.simonecarletti.com/blog/2010/06/unobtrusive-javascript-in-rails-3/

老辦法.0:http://github.com/rails/prototype_legacy_helper

如果你想要2.3.8我可以告訴你觀察現場,只是讓我知道...