【发布时间】:2015-06-29 00:22:34
【问题描述】:
我在一个基本任务管理应用程序中有一个表单,它允许将任务分配给用户(任务属于用户)。我正在为此使用简单表单。
目前,关联以典型方式填充,用户下拉列表如下:<%= f.association :user, label_method: :name, value_method: :id, include_blank: false %>。
但是,随着用户数量的增长,我希望将其更改为自动填充表单字段以查找用户。我已尝试关注Railscast on the subject,尽管它不使用简单表单并且无法用于我的实现。
这是我的表格、型号和 .coffee 代码:
表格
<%= simple_form_for @task do |f| %>
...
<%= f.input :user_name, as: :search, data:
{autocomplete_source: User.pluck(:name)} %>
...
<%= f.button :submit %>
<% end %>
型号
# Virtual attribute for autocomplete form field
def user_name
user.try(:name)
end
def user_name=(name)
self.user = User.find_by_name(name) if name.present?
end
tasks.coffee
jQuery ->
$('#task_user_name').autocomplete
source: $('#task_user_name').data('autocomplete-source')
这会生成以下 HTML:
<input class="string search optional form-control
ui-autocomplete-input ui-autocomplete-loading" type="search"
value="Robert Strong" name="task[user_name]" id="task_user_name"
autocomplete="off">
虽然开发工具控制台中出现以下错误:
Uncaught TypeError: this.source is not a function
关注 HTML 中的 autocomplete="off",无法想象 TypeError 有多大帮助!
我被难住了,所以非常感谢任何关于让它工作的建议!提前谢谢,让我知道你的想法,史蒂夫。
【问题讨论】:
标签: jquery ruby-on-rails forms autocomplete simple-form