【发布时间】:2014-09-25 15:17:01
【问题描述】:
所以我有一个app/assets/javascript/sites.js.coffee.erb 文件。
我做到了:
#lots of stuff
formData: '<%= @s3_direct_post[:fields] %>',
#and more stuff
结束于:
undefined method `[]' for nil:NilClass
这似乎表明 rails 没有预处理 erb 文件。我尝试省略 .erb 扩展名,留下 app/assets/javascript/sites.js.coffee,但这也无济于事。
正确的 rails 4 预处理如何工作???
我很困惑,因为 sites_controller 正确地创建了 @s3_direct_post 对象,
而且可以用在app/views/sites/upload.html.erb就好了……
【问题讨论】:
-
实际上它似乎表明它实际上确实进行了预处理,但是由于某种原因该对象为零...但是我可以在视图中访问它...???
-
看起来@objects 在我的咖啡脚本中不可用...
-
查看文档guides.rubyonrails.org/… 我开始怀疑这是不可能的,只允许助手?
-
为什么要在
/assets/目录中添加.erb文件?如果您的sites_controller操作响应 JS 格式,那么您可以在视图中添加一个[action].js.erb文件,否则,将您的 JS 逻辑与 Rails 逻辑分开。 -
@mmichael RoR 不是我最强的技能,而我所知道的实际上可以追溯到 2.3x 3.0.x 倍...我很高兴您的推荐,我会尝试的。我认为所有 javascript 的东西都会进入 /assets ....
标签: ruby-on-rails ruby-on-rails-4 coffeescript preprocessor