我尝试使用simple_form创建自定义输入类型,该类型将使用jQuery-Autocomplete 实现组合框类型功能。我需要做的是输出一个隐藏字段,该字段将保存所选值的ID以及用户输入的文本字段。
这是我到目前为止所拥有的:
class ComboboxInput < SimpleForm::Inputs::Base
def input
html = @builder.hidden_field(attribute_name, input_html_options)
id = '' #what?
value = '' #what?
return "#{html}<input class='combobox-entry' data-id-input='#{id}' value='#{value}'".html_safe
end
end
我需要获取simple_form生成的隐藏字段的ID,以将其作为HTML属性放置在文本条目上,以允许JavaScript连接&#34;这两个领域。我还需要从模型中获取值以预填充文本输入。如何在我的自定义输入中执行此操作?
答案 0 :(得分:1)
我也在寻找id,但我确实得到了这个值:
def input
current_value = object.send("#{attribute_name}")
end
我刚刚找到了一个解决方法:
html = @builder.hidden_field(attribute_name, input_html_options)
id = html.scan(/id="([^"]*)"/).first.first.to_s
我知道这是一个黑客,但确实有效。由于我们无法直接访问此类解决方案,因此即使基础ID创建代码发生更改,它也可能继续有效。