Javascript 在rails中使用ajax显示更新的数据

Javascript 在rails中使用ajax显示更新的数据,javascript,ruby-on-rails,ajax,Javascript,Ruby On Rails,Ajax,我有一个带有home方法的静态页面控制器 在home.html.erb页面上,我有一个按钮: <%= button_to "Refresh recommendations", {action: :home, reset: true},method: :get,remote: true , class: 'btn btn-success'%> 根据我一直遵循的各种指南和线程,我应该有一个home.js.erb,并且根据我的理解,当发出ajax调用时,控制器应该执行home.js.

我有一个带有
home
方法的静态页面控制器

home.html.erb
页面上,我有一个按钮:

<%= button_to "Refresh recommendations",  
{action: :home, reset: true},method: :get,remote: true , class: 'btn btn-success'%>
根据我一直遵循的各种指南和线程,我应该有一个
home.js.erb
,并且根据我的理解,当发出ajax调用时,控制器应该执行home.js.erb-它目前没有执行

我已经包括了我的
路线。rb
以防万一

root "static_pages#home"
post '/spec', to: "static_pages#spec_rec"
提交ajax请求时,服务器将输出以下内容:

Started GET "/refresh" for 127.0.0.1 at 2014-03-13 12:11:27 -0400
Processing by StaticPagesController#refresh as JS
Rendered static_pages/_refresh.html.erb (0.1ms)

在routes文件中,应该有如下内容

  get 'home/refresh', to: 'home#refresh'
在您的家庭控制器中,您应该

def refresh
  render partial: 'refresh'
end
您应该在视图主文件夹中进行部分刷新,其中包含刷新的html

在你看来

<%= button_to "Refresh recommendations", refresh_home_path, remote: true, class: 'refresh btn btn-success', type: :html %>

那应该可以了

尝试此解决方案时,我收到错误no route matching post“/refresh”。我需要强制按钮作为get请求吗?您不应该使用post/refresh,而是使用rails创建的refresh\u home\u路径,如我的回答所示。目前建议的方式是使用“get”,而不是“post”。我遇到的问题是javascript从未被调用->我甚至更改了js只是为了提醒(这一点)测试是否被调用。我将用服务器上的信息更新我的主要帖子发现我的错误-我在javascript目录中创建js文件,这是我自己的一个严重疏忽,非常感谢您的帮助和耐心!
<%= button_to "Refresh recommendations", refresh_home_path, remote: true, class: 'refresh btn btn-success', type: :html %>
javascript:
  $(document).ready(function() {
    $(document).on('ajax:success', ".refresh", function(evt, data, status, xhr){
      $(selector for your div).html(data);
    });       
  });