0

次の目的の html (スリム テンプレート) があります。

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

上記の「スパン」内にエラー(small.error)を入れたい。

私の解決策(これまでのところ)は次のとおりです。

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

しかし、このように小さなタグは入力タグのすぐ下に配置されています。

そのターゲットの場所を変更できますか?

4

1 に答える 1

0

javascriptで問題を解決します:

$("small.error").each(function(){
    $(this).appendTo($(this).parent("label").find("span"));
});
于 2012-08-03T14:45:22.820 に答える