1

我尝试了 Rails Cookbook 中的示例并设法让它工作。但是,text_field_with_auto_complete仅适用于一个值。

class Expense < ActiveRecord::Base
  has_and_belongs_to_many :categories
end

在新的费用视图中 rhtml

<%= text_field_with_auto_complete :category, :name %>

第一类自动完成作品。如何让它适用于多个类别?例如 Category1、Category2
预期行为:如 StackOverflow 标签文本框

更新:
在一些帮助和更多的修补下,我得到了多个逗号分隔的自动完成显示(将在此处发布代码示例)。
但是在选择时,最后一个值会替换 text_field_with_auto_complete 的内容。因此,当通过自动完成选择第二个类别时,文本框将显示 Category2 而不是 Category1,Category2。任何想法如何纠正这个问题?

4

3 回答 3

1

如果您只是尝试支持每个字段的多个自动完成实例,则可以使用符号 :token 将分隔符传递给自动完成选项。这提供了一个分隔符以允许多个结果。Stackoverflow 将使用 :token => ' ' (引号之间应该有一个空格,但自动格式化正在删除它)来指定多个 take 之间的分隔符处的空格,尽管 ',' 更常用。

于 2008-11-05T14:09:59.587 回答
0

这不是你的问题,但我不会再推荐使用 HABTM。您应该创建一个连接模型并使用 has_many :through。(在您的情况下,您将创建一个名为 ExpenseCategoryAssignment 或其他东西的新模型)

问题是 HABTM 会产生 Rails 不喜欢的歧义,而且它往往会暴露你在其他情况下看不到的错误。

于 2008-11-07T17:00:38.213 回答
0

您需要像这样使用“数据分隔符”参数
<%= f.autocomplete_field :brand_name, welcome_autocomplete_brand_name_path, "data-delimiter" => ', ' %>

于 2012-03-30T14:56:15.077 回答