如果属性值为空,我希望避免渲染CustomInput < SimpleForm::Inputs::Base
。 IOW,我想避免渲染所有的包装器和组件。我可以在控件中执行此操作以避免为模板中的每个控件写if model.attribute.blank?
吗?
答案 0 :(得分:0)
只需继承FormBuilder
并覆盖input
方法
class MyFormBuilder < SimpleForm::FormBuilder
def input(attribute_name, options = {}, &block)
if @template.my_action_show?
return if @object.send(attribute_name).blank?
end
super
end
my_action_show?
只是自定义ApplicationHelper
方法,用于检查是否
params[:action]=='show'