【发布时间】:2012-09-14 06:38:51
【问题描述】:
我想制作一个可以在页面加载后调用的通用控制器(使用 AJAX),并根据调用它的控制器更新页面上的不同内容。
目的是允许更好的页面和片段缓存,同时为用户显示自定义元素。
我的框架如下所示:
controllers/general_ajax_controller.rb
views/general_ajax/on_page_load.js.coffee
./_update_some_stuff.js.coffee
控制器中的on_page_load 操作处理确定要加载哪些部分的逻辑,并且视图将呈现部分。
在on_page_load.js.coffee 视图中,我有以下代码(简化):
<%= render "update_some_stuff" %>
应该呈现部分。相反,我得到了这个错误:
ActionView::Template::Error (SyntaxError: Reserved word "function" on line 2):
app/views/general_ajax/on_page_load.js.coffee:1:in `_app_views_general_ajax_on_page_load_js_coffee___2304196970850216490_70321203283120'
我认为coffeescript在包含在视图中之前是编译好的(这是coffee,不支持编译好的js)
如果我将on_page_load 视图的扩展名更改为.js.erb,那么它可以工作。
(奇怪的是,我必须在它工作之前重新启动我的服务器,你知道为什么吗?)
您认为这是coffeescript 中的一个问题,还是不好的做法,因此不受支持?
作为一个附带讨论,您如何看待我处理动态脚本的方法?
【问题讨论】:
标签: ruby-on-rails-3.1 rendering coffeescript partials