2011-09-14 62 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