如何在ActiveAdmin表单中设置一个与表属性不对应的文本字段?
我需要它来构建自动完成行为,以填充复选框列表。
答案 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