我正在尝试在 Rails 和 ajax 上学习 ruby。我主要完成了本教程:http ://ruby.railstutorial.org/ 和这个:http ://edgeguides.rubyonrails.org/working_with_javascript_in_rails.html
现在我正在努力让最基本的东西正常工作,这样我就有了一个基础。我想在页面加载后动态加载内容。我有一个页面,其中显示了以下代码(app/views/statc_pages/home):
<h1>StaticPages#home</h1>
<p>Find me in app/views/static_pages/home.html.erb</p>
<div name="results" id="results" class="results"></div>
我在 app/assets/javascript/static_pages.js.coffee 中有一个文件:
$(document).ready ->
$.ajax(url: "/static_pages/test").done (html) -> $('#results').append html
我在 app/views/static_pages/ 中有两个文件,它们是 test.js.erb 和 test.hmtl.erb,内容相同。但它不会被添加到 /home。我的静态页面控制器只有:
class StaticPagesController < ApplicationController
def home
end
def test
end
end
到目前为止,只显示主页。咖啡脚本被执行,但 /test 的内容不会被插入。我不确定ajax代码是否被执行。
编辑:config/routes.rb:
AjaxTest::Application.routes.draw do
get "static_pages/home"
get "static_pages/test"
编辑:修复了以下先前的编辑:编辑:当我将 ajax url 更改为“测试”时,我得到:
Missing template static_pages/test, application/test with {:locale=>[:en], :formats=>[:js, :html], :handlers=>[:erb, :builder, :coffee]}. Searched in: * "/home/xyious/Programming/AjaxTest/app/views"
编辑:现在 chrome 说 static_pages.js 包含以下内容:
(function() {
$(document).ready(function() {
return $.ajax({
url: "test"
}).done(function(html) {
return $('#results').append(html);
});
});
}).call(this);