Html 有条件地自定义Rails验证错误

Html 有条件地自定义Rails验证错误,html,ruby-on-rails-3,subdomain,validationerror,Html,Ruby On Rails 3,Subdomain,Validationerror,我正在使用ActionView::Base.field\u error\u proc自定义验证 我的Rails应用程序中出现错误。我创建了一个初始值设定项,如下所示: ActionView::Base.field_error_proc = Proc.new do |html_tag, instance| html = %(<div class="control-group error">#{html_tag}</div>) elements = Nokogiri:

我正在使用
ActionView::Base.field\u error\u proc
自定义验证 我的Rails应用程序中出现错误。我创建了一个初始值设定项,如下所示:

ActionView::Base.field_error_proc = Proc.new do |html_tag, instance|
  html = %(<div class="control-group error">#{html_tag}</div>)
  elements = Nokogiri::HTML::DocumentFragment.parse(html_tag).css "label, input"
  elements.each do |e|
    if e.node_name.eql? 'label'
      e['class'] = "control-label"
      html = %(#{e})
    elsif e.node_name.eql? 'input'
      html = %(<div class="controls">)
      if instance.error_message.kind_of?(Array)
        html += %(#{html_tag}<span class="help-inline">&nbsp;#{instance.error_message.first}</span>)
      else
        html += %(#{html_tag}<span class="help-inline">&nbsp;#{instance.error_message}</span>)
      end
      html += %(</div>)
    end
  end
  html.html_safe
end
ActionView::Base.field_error_proc=proc.new do | html_标记,实例|
html=%(#{html_tag})
elements=Nokogiri::HTML::DocumentFragment.parse(HTML_标记).css“label,input”
元素。每个元素都有|
如果e.node_name.eql?“标签'
e['class']=“控件标签”
html=%(#{e})
elsif e.node_name.eql?“输入'
html=%()
if instance.error\u message.kind\u of?(数组)
html+=%(#{html_tag}{instance.error_message.first})
其他的
html+=%(#{html_标记}#{instance.error_message})
结束
html+=%()
结束
结束
html.html_安全
结束
我只想在子域为
fisheye
时自定义标记, 否则,我想使用不同的标记。我如何做到这一点?我想
这是可能的,因为
instance
被传递到块。

你只想得到子域并用它做一个条件?基本上是的,但我在初始化器中。