从simple_form自定义输入中获取模型值和生成的ID

时间:2014-03-22 03:31:30

标签: simple-form

我尝试使用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;这两个领域。我还需要从模型中获取值以预填充文本输入。如何在我的自定义输入中执行此操作?

1 个答案:

答案 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创建代码发生更改,它也可能继续有效。