2012-11-30 81 views
0

我有一個CustomInput < SimpleForm::Inputs::Base,如果屬性值爲空,我想避免渲染。 IOW,我想避免渲染所有的包裝和組件。我可以在控件中做到這一點,以避免爲我的模板中的每個控件編寫if model.attribute.blank?避免渲染基於屬性值的simple_form組件

+0

我貼這個simple_form谷歌組以及https://開頭組.google.com/d /主題/ plataformatec-simpleform/d-_u2LHmTHw /討論 –

回答

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'