0

我正在创建一个自定义 SimpleForm 输入。它利用 javascript 模式弹出窗口来选择值。

如果我在表单视图中包含模态部分,我基本上可以让它工作,但理想情况下我希望自定义输入将部分推送到模板。

但是,我无法让它工作。我正在尝试这个,但它不能正确渲染部分。

class ProductCategoryImageSelectInput < SimpleForm::Inputs::CollectionSelectInput
  def input

  html = ''
  html << '<a href="#myModal" role="button" data-toggle="modal">Launch demo modal</a>'

  File.open("#{Rails.root}/app/views/product_categories/_browse_modal.html.erb", 'r') do |f|
    html << f.read
  end

  end
end

有什么想法吗?

编辑

我显然太新用户发布屏幕截图,但这里是功能差异的链接:

当我在表单中嵌入模态代码时,我得到了这个,这是所需的功能: 工作

当我尝试将模式代码放在自定义输入中时,我得到了这个: 不工作

4

2 回答 2

6

您还可以使用SimpleForm::FormBuilder分配给名为的实例变量的实例从自定义输入中呈现部分内容@builder

class ProductCategoryImageSelectInput < SimpleForm::Inputs::CollectionSelectInput
  def input
    @builder.template.render(partial: 'product_categories/browse_modal', locals: { foo: 'bar'})
  end
end
于 2015-04-15T20:40:54.223 回答
0

奇怪的是,我似乎已经在这里回答过了。这对你有用吗?

ERB.new(f.read).result(binding)

PS:更新为 ERB 而不是 HAML。

于 2012-09-07T03:23:56.333 回答