javascript-如何在coffeescript js中使用Rails助手

我不太了解助手在视图/控制器中的工作方式.我没用过

我的具体问题是:几乎所有视图都实现了AJAX.在我的大多数控制器中,update.js.coffee和create.js.coffee具有以下代码的某种形式:

jQuery ->
  <% if @product.errors.any? %>
  error_info = '<%= j(render :partial => "shared/errors", :locals => { :record => @product }) %>'
  popup error_info

  <% else %>
.
.
.

弹出窗口是显示某些元素的JavaScript函数.

有没有一种方法可以将其抽象为助手?做这个的最好方式是什么?在每种情况下,此代码几乎完全相同,除了@product的两种用法当然会因所涉及的模型而有所不同.

如果这不是帮助者的作用,那么1)他们的作用是什么?和2)我应该改用什么?

编辑:奖金问题:实际上,我的许多新功能,创建功能,编辑功能和更新功能在各个模型之间都是相似的.你怎么干这个?还是不担心?

解决方法:

第一步是将文件扩展名更改为.js.coffee.erb.这使资产管道知道您希望使用ERB解释文件.

第二个可选步骤是向Sprokets添加自定义帮助程序,以便您可以从Coffee脚本文件*中调用自己的方法.只需创建一个新的帮助程序模块,然后将其注册到初始化程序中即可:

Sprockets::Context.send :include, CoffeeHelper

*:资产将无法访问您习惯使用的所有帮助程序,因为ERB在资产被编译时运行,而不是作为HTTP请求的一部分运行.不存在正常的控制器/帮助程序设置.

上一篇:javascript-node.js http.request事件流-我的END事件去了哪里?


下一篇:javascript-Node.js hubot在服务器上执行命令