【发布时间】:2015-06-10 18:53:04
【问题描述】:
我正在使用 Rails 3.1.3。我想按以下步骤使用 js.erb 文件:
1.在posts控制器中创建测试动作:
def test
respond_to do |format|
format.js
end
end
2。在 routes.rb 中定义这个动作:
resource :posts do
collection do
get 'test'
end
end
3。创建 test.js.erb 文件:
$('#abc').append('<h1>something</h1>');
4。在 index.html.erb 文件中:
<div id='abc'></div>
<%= link_to "Test", test_posts_path, :remote => true %>
但是,我运行并单击测试链接,它转到带有 url http://localhost:3000/posts/test 的空白页面,并且日志服务器是:
Started GET "/posts/test" for 127.0.0.1 at Sat Feb 11 18:04:36 +0700 2012
Processing by PostsController#test as HTML
所以,服务器不作为 JS 处理,test.js.erb 文件中的 jQuery 不被执行。你能解释一下为什么在控制器中我定义respond_to format.js时服务器处理为HTML吗?
我假设项目中的所有响应都定义为 format.html,所以我的测试操作无法响应 JS?如果正确,我可以更改它吗?
非常感谢
更新:在 assets/javascripts/application.js 中需要使用行:
//= require jquery
//= require jquery_ujs
然后就可以了。
【问题讨论】:
-
jquery和jquery-ujs是否由您的index.html.erb加载?
标签: jquery ruby-on-rails