Rails field_error_proc - 更改默认错误目标

时间:2012-08-01 20:08:19

标签: ruby-on-rails-3 slim-lang

我有以下所需的html(超薄模板):

li
    label
        span
            | Password
            small.error ERROR MESSAGE
        br
        = f.password_field :password

我想把错误(small.error)放在" span"上方。

我的解决方案(到目前为止)是:

ActionView::Base.field_error_proc = Proc.new do |html_tag, instance|
    if instance.error_message.kind_of?(Array)
        %(#{html_tag}<small class="error">
        #{instance.error_message.join(',')}</small>).html_safe
    else
        %(#{html_tag}<small class="error">
        #{instance.error_message}</small>).html_safe
    end
end

但是以这种方式,小标签已经放在输入标签的正下方。

我可以更改目标位置吗?

1 个答案:

答案 0 :(得分:0)

使用javascript解决问题:

$("small.error").each(function(){
    $(this).appendTo($(this).parent("label").find("span"));
});