ruby-on-rails - 通过 AJAX 创建表单时显示错误消息

标签 ruby-on-rails ruby ruby-on-rails-3 ruby-on-rails-3.1

我有一个名为 /add 的页面你可以添加 Dog on 并且表格是它自己的部分。我正在使用 Simple FormTwitter Bootstrap .我为主 Bootstrap 添加了文件,但是 use a gem for simple_form to work with it只是想让你知道。

狗 Controller

# new.js.erb (deleted new.html.erb)

def new 
 @dog = Dog.new

 respond_to do |format|
  format.js
 end
end

# create.js.erb

def create 
  @dog = current_user.dogs.new(params[:dog])

  respond_to do |format|
    if @dog.save
      format.html { redirect_to add_url, notice: 'Dog was successfully added.' }
      format.json { render json: @dog, status: :created, location: @dog}
      format.js
    else
      format.html { render 'pages/add' }
      format.json { render json: @dog.errors, status: :unprocessable_entity }
    end
  end
end

狗/_form.html.erb

<%= simple_form_for(@dog, :remote => true) do |f| %>
  <%= render :partial => "shared/error_message", :locals => { :f => f } %>
    <%= f.input :name %>      
  <%= f.button :submit, 'Done' %>
<% end %>

这一行:<%= render :partial => "shared/error_message", :locals => { :f => f } %>

用于 Bootstrap ,因此它可以正确呈现错误 html。

页面 Controller

def add

  respond_to do |format|
    format.html
  end
end

页面/add.html.erb

<div id="generate-form">
</div>          

狗/new.js.erb

$("#generate-form").html("<%= escape_javascript(render(:partial => 'dogs/form', locals: { dog: @dog })) %>");

现在我怎样才能让它呈现部分错误,就好像它仍在我的 dogs/new.html.erb 上一样因为它是通过 AJAX 创建的?我不需要客户端验证,对吗?


编辑

共享/_error_message.html.erb

<% if f.error_notification %>
   <div class="alert alert-error fade in">
     <a class="close" data-dismiss="alert" href="#">&times;</a>
     <%= f.error_notification %>
   </div>
<% end %>

最佳答案

在我们的聊天中,您提到您还有一个 create.js.erb,该文件正在清除表单。

使 create.js 与 new.js.erb 相同: $("#generate-form").html("<%= escape_javascript(render(:partial => 'dogs/form', locals: { dog: @dog })) %>");

成功了。

关于ruby-on-rails - 通过 AJAX 创建表单时显示错误消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11109531/

相关文章:

ruby-on-rails - Ruby:如何在 YAML 中定义日期时间字段?

ruby-on-rails - 仅当满足某些条件时,如何将 "touch"关联为 `belongs_to` 关联的父模型?

ruby-on-rails - 是否有任何通过 Ruby 使用 LocationLabs 或 Loc-Aid 的开源示例?

ruby - 如果其中的值为零,则从哈希中获取 key

ruby-on-rails - Rails - take(4) 但底部不是顶部?

sql - Rails - 删除满足条件的所有记录

c++ - 使用 Ruby on Rails 进行复杂算法

css - 检测 css 文件和 ruby​​ on rails 中的语法错误。无效的 CSS

ruby-on-rails - 推特 "could not authenticate you"错误

ruby-on-rails - 如何通过graphql突变从rails销毁当前用户 session