2016-12-29 13 views
0

私はajaxの検証問題を解決しようとしています。これは、イベントが発生したときにエラーの一部を呼び出しますが、トンモーダル内のフォームビューに戻す方法を知って、ここに私のコード:ajax Railsを使用した検証の問題

_form.html.erb

<%= form_for @enterprise, remote: true, html: { multipart: true } do |f| %> 

     <div id="error-messages"></div>  

     <div class="row"> 
     <div class="small-6 columns"> 
      <%= f.label :nombre %> 
      <%= f.text_field :name, placeholder: "Nombre" %> 
     </div> 
     <div class="small-6 columns"> 
      <%= f.label :correo_electronico %> 
      <%= f.text_field :email, placeholder: "Correo electronico" %> 
     </div> 
     </div> 

     <div class="row"> 
     <div class="small-6 columns"> 
      <%= f.label :contraseña %> 
      <%= f.text_field :password, placeholder: "Contraseña" %> 
     </div> 
     <div class="small-6 columns"> 
      <%= f.label :confirmar_contraseña %> 
      <%= f.text_field :password_confirmation, placeholder: "Confirmar contraseña" %> 
     </div> 
     </div> 

     <div class="row"> 
     <div class="small-12 columns"> 
      <%= f.submit "Guardar", class: "button" %> 
     </div> 
     </div> 

    <% end %> 

create.js.erb

<% if @enterprise.errors.empty? %> 
    $('#exampleModal1').foundation('close'); 
<% else %> 
    $('#error_messages').html('<%= render partial: "enterprises/shared/errors" %>'); 
<% end %> 
new.js.erbして、もう一度試してcreate.js.erbの

企業/共有/ _errors.html.erb

<% if @enterprise.errors.any? %> 
    <div id="error_explanation"> 
    <h2> 
     <%= pluralize(@enterprise.errors.count, "error") %> prohibited 
     this article from being saved: 
    </h2> 
    <ul> 
     <% @enterprise.errors.full_messages.each do |msg| %> 
     <li><%= msg %></li> 
     <% end %> 
    </ul> 
    </div> 
<% end %> 

enterprises_controller.rb

def create 
    @enterprise = Enterprise.new(enterprise_params) 

    respond_to do |format| 
     if @enterprise.save 
     format.html { redirect_to @enterprise, notice: 'enterprise was successfully created.' } 
     format.js {} 
     format.json { render json: @enterprise, status: :created, location: @enterprise } 
     else 
     format.html { render action: "new" } 
     format.json { render json: @enterprise.errors, status: :unprocessable_entity } 
     end 
    end 
    end 
+0

あなたの_form.html.erbには「error_messages」というidのdivがありますか? –

+0

私はコードを変更し、divエラーメッセージをフォームに入れますが、私はそれを取得せず、format.jsの更新でレンダリングを指定する必要がありますか? –

答えて

1

コピーコード

+0

Naut Gautam、これはちょっとした更新が起こると、new.jsとedit.jsだけがフォームへのレンダリングを行います –