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
あなたの_form.html.erbには「error_messages」というidのdivがありますか? –
私はコードを変更し、divエラーメッセージをフォームに入れますが、私はそれを取得せず、format.jsの更新でレンダリングを指定する必要がありますか? –