0

CustomInput < SimpleForm::Inputs::Base属性値が空白の場合、レンダリングを避けたいというものがあります。IOW、すべてのラッパーとコンポーネントをレンダリングすることは避けたいです。if model.attribute.blank?テンプレート内の各コントロールへの書き込みを回避するために、コントロール内でこれを行うことはできますか?

4

1 に答える 1

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'
于 2012-12-10T15:24:54.627 に答える