使用ajax渲染部分

时间:2013-02-13 14:54:10

标签: ruby-on-rails ruby ruby-on-rails-3 jquery ruby-on-rails-3.2

看起来很简单,但我的部分内容未使用ajax在视图中呈现( dash.html.erb )。

的routes.rb

match "users/dash" => "users#dash"

用户控制器

def dash
     respond_to do |format|
    format.js
  end
   end

dash.html.erb

<div id= "mydiv">This view is not shown using ajax.</div>

dash.js.erb

$('#mydiv').html('<%= raw escape_javascript render("cart_payment") %>');

我的部分_cart_payment.html.erb

<p>This is a partial.</p>

更新:

用户/ index.html.erb

<script type= "text/javascript">

$.ajax({
  url: "users/dash",
  data: {  
  //params if needed

  }
});

</script>

请注意我在浏览器中调用users url因为从这里调用了ajax。 这是不正确的方式还是我错过了什么?

1 个答案:

答案 0 :(得分:1)

当您远程调用dash方法时,它实际上正在执行$('#mydiv').html...代码。问题是,您的index.html.erb文件首先没有<div id='mydiv'>更新。

如果您用此替换index.html.erb,它应该有效:

<div id='mydiv'></div>

<script type= "text/javascript">
  $.ajax({
    url: "users/dash",
    data: {  
    //params if needed
    }
  });
</script>
相关问题