避免根据属性值渲染simple_form组件

时间:2012-11-30 15:42:46

标签: ruby-on-rails-3.2 simple-form

如果属性值为空,我希望避免渲染CustomInput < SimpleForm::Inputs::Base。 IOW,我想避免渲染所有的包装器和组件。我可以在控件中执行此操作以避免为模板中的每个控件写if model.attribute.blank?吗?

1 个答案:

答案 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'