Rails format.js和远程true

时间:2016-05-14 16:11:08

标签: ruby-on-rails ruby

我在Ruby on rails上工作。我已经成功地设置了一个将呈现我的create.js.erb的表单。但是我想知道是否有办法检查表单是否无法制作对象?现在,如果它失败了它什么也没做。

我的控制器看起来像这样:

if @expansion.save
    respond_to do |format|
        format.js
        format.html { render action: "index", notice: 'Book was successfully created.' }
        format.json { render json: @book, status: :created, location: @book }
    end
else
    respond_to do |format|
        format.js 
        format.json { render json: @book.errors, status: :unprocessable_entity }
        format.html { render action: "index", notice: 'something went wrong' }


        end
end

我有办法在create.js.erb中找到错误吗?

2 个答案:

答案 0 :(得分:1)

来自Rails guides on Ajax

ul

简而言之,您应该检查Ajax功能,看看服务器是否响应成功或失败。

答案 1 :(得分:1)

您仍然可以访问create.js.erb中的@expansion实例变量。您可以根据@ expansion.errors的存在执行js代码 - 例如:

<% if @expansion.errors %>
  alert("You have the following errors: <%= @expansion.errors %>");
<% else %>
  // js code for successful save
<% end %>