如何在active_admin formtastic中嵌入原始html

时间:2012-05-15 14:39:43

标签: ruby-on-rails activeadmin formtastic

我正在尝试使用formtastic在active_admin模型中构建一个表单。 问题是我需要在表单内部或周围直接使用某个脚本标记和其他原始HTML内容。

我正在使用普通表单块执行此操作:

form do |f|
    f.inputs :name => "User Details", :for => :user do |user_form|
    user_form.input :first_name, :required => true
    ...

如何在中间嵌入一个简单的 div 标记? 甚至是脚本标签?

我考虑使用render :partial,但我想知道上述方法是否可行。谢谢!

3 个答案:

答案 0 :(得分:7)

您可以像这样插入div或javascript:

   f.form_buffers.last << content_tag(:div, "Div content here")
   f.form_buffers.last << javascript_tag("alert('hi');")

答案 1 :(得分:5)

在当前的ActiveAdmin中,不推荐使用form_buffers。相反,它可以执行以下操作:

insert_tag(Arbre::HTML::Div) { content_tag(:span, "foo") }

答案 2 :(得分:1)

主动管理员根据他们的文档在Formtastic上创建了一个DSL

  

https://github.com/activeadmin/activeadmin/blob/master/docs/5-forms.md

所以你现在可以做到:

form do |f|
  f.semantic_errors(*f.object.errors.keys)

  import_errors = self.controller.instance_variable_get("@errors")
  if import_errors.present?
    ul class: 'errors' do
      import_errors.each do |e|
        li e
      end
    end
  end
 # ...
end