如何呈现由jQuery事件触发的部分Rails?

时间:2017-06-30 20:44:21

标签: jquery ruby-on-rails ajax

我见过许多与此主题相关的指南,例如this one,当用户点击指向特定控制器方法的链接时,这些指南都专注于渲染部分。

如果链接点击不是我的触发事件怎么办?在我的情况下,如果用户从下拉列表中选择一个项目,我想使用他们选择的数据渲染部分内容。

这是我的非工作代码 -

 // this is the event that is fired when a user clicks on a suggestion
$('.typeahead').bind('typeahead:selected', function(event, datum, name) {
  $('#my-list').html("<%= escape_javascript(render(:partial => 'some_block')) %>");
});

如果我将此文件命名为“blah.js”,它只是将Ruby代码作为字符串呈现,如果我将其命名为“blah.js.erb”,则会出现错误,指出没有render方法类...

我是否需要在事件函数中进行特定的AJAX调用?

1 个答案:

答案 0 :(得分:1)

是的,你需要ajax调用, 有两个原因,首先你没有任何与你的渲染相关的REST事件,所以你不能使用js.erb扩展,其次你不能使用.js扩展来渲染

所以,你需要的是获取数据,从服务器获取数据并显示你需要使用

$.get(function(){
url: ''
data: ''
success: ''
}); function of ajax.

请参阅此文档

https://api.jquery.com/jquery.get/