javascript - Rails 3.1 在 JavaScript 文件中插入 ruby​​ 代码

标签 javascript ruby-on-rails asset-pipeline

我正在使用 Rails 3.2.12。
我想在我的 Assets JavaScript 文件中插入一个 ruby​​ 代码:

function trim(string) {
  return string.replace(/(^\s+)|(\s+$)/g, "");
}

function <%= controller_name %>() {
...    
}

我该怎么做?
提前致谢。

最佳答案

如果你要传递的变量是独立于请求的——那么只要给它一个名字*.js.erb

对于特定于请求的数据(如示例中的 Controller 名称),这是不可能的。 Javascript 文件独立于应用程序请求加载,通常它们由应用程序服务器(apache、nginx)作为静态 Assets 提供。因此,如果您想要一些依赖于请求的自定义脚本,请将其放入您的 View 模板 (.html.erb) 中。

此外,您当然可以通过应用程序(在 routes.rb 中定义它的路由)将请求代理到您的 js 文件,但这不会被视为好的代码。

关于javascript - Rails 3.1 在 JavaScript 文件中插入 ruby​​ 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17809591/

相关文章:

ruby-on-rails-4 - Rails 4 指纹识别导致生产环境中的引导 Assets 出现 404

javascript - 当单行上有多个匹配项时,如何仅找到 `' `(具有最小长度)之间的字符串?

ruby-on-rails - 注释 gem 不工作

ruby-on-rails - 安装 Ruby on Rails - Mac OS Lion

ruby-on-rails - Ruby:NoMethodError:未定义方法 `<<' 为 nil:NilClass

ruby-on-rails - Assets 预编译错误:未初始化的常量 Mongo::Logging

ruby-on-rails - 当我的 asset/javascript 文件夹中有 CoffeeScript 文件时,我收到此错误

javascript - 如何在页面刷新时保留当前的 ​​SPA 路线?

javascript - 为玩家检查敌人周围的圆形区域

javascript - 当没有什么东西应该那么大时,使用nodejs处理内存不足错误