未通过验证的字段不会获得.field_with_errors类

时间:2016-03-30 12:13:45

标签: ruby-on-rails ruby-on-rails-3 ruby-on-rails-4 ruby-on-rails-3.2 ruby-on-rails-3.1

我的验证工作正常

class Owner < ActiveRecord::Base
validates :car_number, :name, :phone, presence:true
validates_uniqueness_of :car_number 
has_many :cars
has_many :visits
accepts_nested_attributes_for :visits

和我的save.js.erb

$("ul.errors").html("")
<% if  @owner.errors.any? %>
<% @owner.errors.full_messages.each do |message| %>
$("ul.errors").append($("<li />").html("<%= message.html_safe %>"))
$('.field_with_errors').addClass('has-error has-feedback');

<% end
else %>

$("#new_owner_div").html("<%= j (render 'visits/show', { :f => @visit })%>")
<%end%>

但没有字段在“field_with_errors”类下面。

1 个答案:

答案 0 :(得分:0)

好的,与往常一样,需要花费很多时间才能解决的麻烦比我想象的要容易。

我找到了如何为每个错误输入[假设您的输入被命名为:modelname [field_name]

<int:header-enricher input-channel="inputMessageChannel"  output-channel="messagePublishChannel">
        <int:header name="message_success" expression="@gateway.exchange(#root).payload" />
    </int:header-enricher>



    <int:header-value-router  input-channel="messagePublishChannel" header-name="mqstatus">
        <int:mapping value="success" channel="responseCreatorChannel" />
        <int:mapping value="failure" channel="errorChannel" />
    </int:header-value-router>

    <int:gateway id="gateway" default-request-channel="getQdetails" />
    <int:chain input-channel="getQdetails">
        <int:service-activator  ref="rdrBusinessRulesValidationService" method="transform" />
        <int-xml:marshalling-transformer marshaller="marshaller" result-transformer="messageResultTransformer">
        </int-xml:marshalling-transformer>
        <int:header-value-router header-name="region">
            <int:mapping value="USA" channel="region1Channel" />
            <int:mapping value="PRI" channel="region2Channel" />
        </int:header-value-router>
    </int:chain>

    <int-jms:outbound-channel-adapter channel="region1Channel" connection-factory="activeMqconnectionFactory"  destination="region1Destination">
        <int-jms:request-handler-advice-chain>
            <bean class="org.springframework.integration.handler.advice.ExpressionEvaluatingRequestHandlerAdvice">
                <property name="onSuccessExpression" value="T(Boolean).TRUE" />
                <property name="onFailureExpression" value="T(Boolean).FALSE" />
                <property name="successChannel" ref="toReplySuccess" />
                <property name="failureChannel" ref="toReplyFailure" />
                <property name="trapException" ref="true" />
            </bean>
        </int-jms:request-handler-advice-chain>
    </int-jms:outbound-channel-adapter>

        <int:transformer input-channel="toReplySuccess" output-channel="toReplyChannel"
                expression="T(org.springframework.messaging.support.MessageBuilder)
                .createMessage(payload, inputMessage.headers)" />



    <int:transformer input-channel="toReplyFailure"
                expression="T(org.springframework.messaging.support.MessageBuilder)
                .createMessage(payload.evaluationResult, payload.failedMessage.headers)" />

    <int:bridge input-channel="toReplyChannel"/>

在css中的位置:

 <% @owner.errors.each do |attribute, error| %>
$('[name="owner[<%=attribute%>]"]').addClass('field_with_errors')
<% end %>