Ruby on rails 3.2 避免基于属性值渲染简单的表单组件
我有一个Ruby on rails 3.2 避免基于属性值渲染简单的表单组件,ruby-on-rails-3.2,simple-form,Ruby On Rails 3.2,Simple Form,我有一个CustomInput
CustomInput
,如果属性值为空,我希望避免渲染它。注意,我想避免渲染所有包装器和组件。我是否可以在控件内执行此操作,以避免为模板中的每个控件写入if model.attribute.blank?
,只需将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
我也在谷歌集团的简单表单上发布了这篇文章
params[:action]=='show'