ActiveAdmin:没有相应表属性的表单输入

时间:2016-08-25 19:08:46

标签: ruby-on-rails activeadmin

如何在ActiveAdmin表单中设置一个与表属性不对应的文本字段?

我需要它来构建自动完成行为,以填充复选框列表。

1 个答案:

答案 0 :(得分:1)

如果您希望将值提交回模型,可以通过添加attr_accessible来创建虚拟属性,或者在模型中明确定义它们,如answer中所述:

def my_virtual_attr= (attributes)
  #this will be evaluated when you save the form
end

def my_virtual_attr
  # the return of this method will be the default value of the field
end 

,您需要将其添加到ActiveModel资源文件中的permit_params

如果您不需要提交给后端的值(例如前端处理所需),您实际上可以将任何自定义HTML添加到ActiveAdmin form,这是一个示例代码:< / p>

ActiveAdmin.register MyModel do
  form do |f|
    f.semantic_errors # shows errors on :base
    f.inputs "My Custom HTML" do      
      f.li "<label class='label'>Label Name</label><a class='js-anchor' href='#{link}'>Link Text</a><span></span>".html_safe
      f.li "<label class='label'>Label 2 Name</label><input id='auto_complete_input'/>".html_safe
    end
    f.inputs "Default Form Attributes" do
      f.inputs          # builds an input field for every attribute
    end
    f.actions         # adds the 'Submit' and 'Cancel' buttons
  end
end