Rails 3 - 如何使用textarea而不是经典文本输入自动完成?

时间:2012-05-13 17:54:46

标签: jquery ruby-on-rails-3 autocomplete textarea

我正在玩rails3-jquery-autocomplete宝石,这对我很有帮助。这是一个示例,如何查看我的自动完成输入:

= f.autocomplete_field :interest, autocomplete_interest_users_path, :"data-delimiter" => ','

因为很多时候我需要在输入中写下很多单词,这就是为什么使用 textarea 而不是默认的输入会更好,但是怎么做呢?有什么想法吗?

提前谢谢。

2 个答案:

答案 0 :(得分:1)

或许像http://rightjs.org/ui/tags/demo这样的东西?有一篇关于在http://st-on-it.blogspot.com/2011/04/making-tags-with-rails-and-rightjs.html上使用Rails开展这项工作的文章。

答案 1 :(得分:0)

以下是我使用jQuery的方法:

将其添加为帮助者:

module ActionView
  module Helpers
    module FormHelper

      def autocomplete_text_area(object_name, method, source, options ={})
        options["data-autocomplete"] = source
        text_area(object_name, method, rewrite_autocomplete_option(options))
      end
    end
  end

  class ActionView::Helpers::FormBuilder
    def autocomplete_text_area(method, source, options = {})
      @template.autocomplete_text_area(@object_name, method, source, objectify_options(options))
    end
  end
end

这是你在Rails中扩展表单助手的方法。我们在这里做的是添加我们自己的方法,我们可以在我们的视图中调用。

现在,将其添加到您的一个javascript文件中:

 $('textarea[data-autocomplete]').railsAutocomplete()

这会设置autocomplete js脚本来监听并回复我们的textarea。

现在你应该可以在你看来做这样的事情了:

f.autocomplete_text_area :name, autocomplete_menu_item_name_menus_path, placeholder: "Menu Item Name", class: 'input-lg menu_item', size: "45x2"