2011-09-14 100 views
0

我一直在尋找一種方式來添加自動完成功能的formtastic形式,並遇到crowdint/rails3-jquery-autocomplete但我無法獲得最新版本(0.9.1)到使用formtastic(這是一個已知問題),在以前的版本中,id-element helper不起作用,因此在提交表單時無法在隱藏字段中設置選項值。 elandesign的另一個gem,formtastic_autocomplete過時了。所以我想知道是否有任何替代方法可以用於以formtastic形式獲取(jquery-ui?)自動填充字段。我的模型是這樣的產品屬於一個品牌和一個品牌有很多產品(有一個brand_id列ib產品表),所以目前我有這意味着自動創建一個選項選擇協會
謝謝, 亞歷克斯Formtastic自動完成

回答

0

如果你不使用試圖變得聰明並且爲你做所有事情的寶石,那麼你使用formtastic的事實就是無關緊要的。 formastic生成的HTML與使用常規表單助手生成的HTML沒有區別。

您可以輕鬆使用jquery ui自動完成插件。

+0

我的意思是創建一個自定義輸入類型,而不用添加標記掛鉤在黑客的方式,抱歉不清楚。無論如何感謝回覆:) – Tds

0

只修復了rails3-jquery-autocomplete上的Formtastic問題。使用版本1.0.2

當你說id元素不工作,你的意思是與Formtastic結合?

當我使用它與常規輸入它似乎工作得很好。

+0

非常感謝你,它現在的作品。我的意思是在(0.9.0)中不起作用,但它在(1.0.2)中起作用。 – Tds

0

我已經寫了一個不顯眼的純jQuery解決方案來解決這個問題(自動完成belongs_to關聯)。對於Formtastic,你不必做任何特別的事情。只需爲外鍵生成一個普通輸入字段,並添加一個指定自動填充URL的屬性和另一個指定所引用模型(您的案例中現有產品的品牌名稱)的顯示值的屬性。使用HAML模板符號(ERB是幾乎相同的):

= semantic_form_for @product do |f| 
    = f.inputs do 
    -# Other input fields ... 
    = f.input :brand_id, 
     :input_html => {:'data-autocomplete-url' => auto_complete_brands_path, 
         :'data-autocomplete-value' => @product.brand.try(:name)} 
:javascript 
    $(function() { 
    $('#product_brand_id').autocompleteAssociation(); 
    }); 

它使用一個jQuery自動完成構件我專門爲這樣的模型關聯的情況下寫的。它可以在這裏找到,以及更多的文檔:https://gist.github.com/3842296