我一直在寻找一种方法来将自动完成功能添加到formtastic表单并且遇到了crowdint / rails3-jquery-autocomplete,但我无法获得最新版本(0.9.1)与formtastic一起使用(这是一个已知问题)并且在以前的版本中,id-element helper不起作用,因此在提交表单时无法在隐藏字段中设置选项值。 elandesign的另一个宝石,formtastic_autocomplete已经过时了。所以我想知道是否有任何替代方法可以用来获得一个形式的(jquery-ui?)自动完成字段。我的模型是这样的产品属于一个品牌,一个品牌有很多产品(产品表中有一个brand_id列),所以目前我的意思是自动创建一个选项用于关联
谢谢,
亚历
答案 0 :(得分:0)
如果你不使用一个试图聪明的宝石,并为你做了一切,你使用formtastic的事实是无关紧要的。 formastic生成的HTML与使用常规表单帮助程序生成的HTML没有区别。
您可以轻松使用jquery ui自动完成插件。
答案 1 :(得分:0)
修复了rails3-jquery-autocomplete上的Formtastic问题。使用版本1.0.2
当你说id-element不起作用时,你的意思是与Formtastic结合使用吗?
当我使用常规输入时,它似乎工作得很好。
答案 2 :(得分: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