【发布时间】:2017-12-01 16:42:27
【问题描述】:
我知道我可以像这样创建一组单选按钮:
# Slim template
= f.association :requirement, as: :radio_buttons
我想让用户使用单选按钮上方的文本字段过滤单选按钮,所以我稍微修改了一下并想出了以下内容:
label for="filter" Filter
input#filter type="text"
= f.association :requirement, as: :radio_buttons
现在我想使用自定义集合输入类型自动创建这些东西:
= f.association :requirement, as: :autocomplete
所以我尝试创建一个自定义输入,但我没有让它工作。
我创建了以下自定义输入:
# app/inputs/autocomplete_input.rb
class AutocompleteInput < SimpleForm::Inputs::CollectionRadioButtonsInput
# ...
end
这会导致以下错误:
undefined method `collection_autocomplete' for #<SimpleForm::FormBuilder:0x007ffc1d90e9a0>
你的意思是?收藏选择
我在 SimpleForm 的源代码中搜索了一下,然后尝试模仿我为单选按钮集合输入找到的内容:
module SimpleForm
class FormBuilder
map_type :autocomplete, to: SimpleForm::Inputs::AutocompleteInput
end
end
但这导致了这个相当奇怪的错误:
Circular dependency detected while autoloading constant AutocompleteInput
现在我不知道该怎么做。我已经为简单的字符串和文本区域输入创建了几个自定义输入,但是对于集合我不知道如何继续。
【问题讨论】:
-
我不知道这是否会有所帮助,但GitHub page 上似乎有一个未解决的问题可以处理这个确切的问题。也许你可以从那里提取你想要的东西?
-
您想知道如何创建自定义输入的问题,还是想知道如何让自动完成功能正常工作?因为您选择的路径似乎不是您要解决的问题的正确解决方案。
-
我也遇到了同样的问题。
标签: ruby-on-rails custom-controls simple-form