在这种情况下应该如何处理rails ajax响应?

时间:2012-08-15 16:58:54

标签: ruby-on-rails ajax ruby-on-rails-3

我是rails的新手,我知道如何用jquery做ajax,但不明白rails是如何做的。

了解rails ajax如何工作的简单示例:

案例 - 将ajax响应插入结果div:

视图:

<div id="result">1result,2result, </div>

<%= form_tag('/mycontroller',{:class =>"myform",:remote => true}) do %>
    <input name="myinput" type="text">
    <button type="submit" class="btn"> add </button>
<% end %>

控制器:

def create
      render :json => "3result";
end

我应该添加什么来在响应成功后在div中插入3result?我应该添加哪些代码来处理错误情况?

2 个答案:

答案 0 :(得分:1)

您可以将此代码放在您的控制器上

渲染:更新do | page |
      page&lt;&lt; “$( '#结果')。追加( '3result')”

并确保安装了'jquery-rails'gem。

您可以使用该区域来检查错误并呈现不同的内容。

答案 1 :(得分:1)

我会修改我的控制器代码:

def create
  ...
  respond_to do |format|
    if (success_condition)
      format.js
    else
      format.js { render :js => "alert('Unsuccessful!');" }
    end
  end
end

我会创建一个名为create.js.erb的视图,其中包含:

$("#result").html("3result") // or whatever you want it to do...

(注意:Javascript假设你安装了JQuery。)