Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用Rails 3+;jQuery?_Jquery_Ajax_Ruby On Rails 3 - Fatal编程技术网

如何使用Rails 3+;jQuery?

如何使用Rails 3+;jQuery?,jquery,ajax,ruby-on-rails-3,Jquery,Ajax,Ruby On Rails 3,在数据库表名之后的页面上有几个微调器。在documentready上使用jQuery,我想用单独列出的表名中的记录数替换这些微调器 例如,在下面,假设星号是一个微调器: 客户订单* 更改: 客户订单(125) 我已经知道如何获取表记录计数。 我不知道如何从jQuery调用Rails,将表名作为参数传递,以获得计数。 我是否创建.js.erb部分 我是否只引用一个返回生成的html的助手方法 最佳做法是什么 我的jQuery代码在文档就绪中看起来如何 <script type="te

在数据库表名之后的页面上有几个微调器。在documentready上使用jQuery,我想用单独列出的表名中的记录数替换这些微调器

例如,在下面,假设星号是一个微调器:

客户订单*

更改:

客户订单(125)

  • 我已经知道如何获取表记录计数。
  • 我不知道如何从jQuery调用Rails,将表名作为参数传递,以获得计数。
    • 我是否创建.js.erb部分
    • 我是否只引用一个返回生成的html的助手方法
  • 最佳做法是什么
我的jQuery代码在文档就绪中看起来如何

<script type="text/javascript">
     $(document).ready(function() {
         $('#spinner1').html(/* ??? */);
         $('#spinner2').html(/* ??? */);
         $('#spinner3').html(/* ??? */);
  });
</script>

$(文档).ready(函数(){
$('#spinner1').html(/*?*/);
$('#喷丝头2').html(/*?*/);
$('#spinner3').html(/*?*/);
});
编辑:好吧,让我换一种说法。。。我有一个helper函数,它接受一个table_name参数,并返回输出html。如何调用该函数,使其在页面加载后运行?

  • 我可以通过jQuery在document.ready中调用它吗?
  • 或者,我需要一个.js.erb部分视图吗?
  • 或者,我是否完全遗漏了什么?

最简单/最快的方法是使用html.erb模板创建一些新的控制器操作,然后使用jquery的load()函数。因此:

首先,创建一个新操作,输出(使用.html.erb模板)documentReady之后要显示的html。确保控制器不使用动作的布局,并创建链接到动作的命名路由。既然已经编写了helper函数,模板应该只使用适当的参数调用helper函数

因此,如果您的控制器被称为“用户”,而您的新操作被称为“ajax\u info”,那么您将创建一个名为“user\u ajax\u info”的新路由,并将其链接到“Users/ajax/info”中。如果在浏览器中转到user/ajax/info,您将看到希望使用ajax插入文档的内容(并且仅显示内容)

然后可以使用Jquery的load()将内容加载到DocumentReady上,例如:


$(文档).ready(函数(){
$('spinner1')。加载(“”);
});
Rails然后会自动将用户的正确URL\uAjax\uInfo传递给Jquery;Jquery将在该URL加载内容,并用新内容替换spinner1的内容。有关更多详细信息,请参阅


请注意,从技术上讲,这可能不是最佳实践;从实践的角度来看,使用XML/JSON返回数据要好得多。另一方面,这也是一个非常棘手的实施;我建议从这个开始,然后在必要时更新

$($('body').children().get(0)).parent().empty().append($(''.val('123'))@John,他要求的是AJAX代码。我承认这个问题并不十分清楚。
<%= javascript_tag do %>
  $(document).ready(function() {
    $('spinner1').load('<%= user_ajax_info_url -%>');
  });
<% end %>