【问题标题】:Call ruby method inside index.html.erb to load javascripts在 index.html.erb 中调用 ruby​​ 方法来加载 javascripts
【发布时间】:2015-07-22 07:08:22
【问题描述】:

是否可以在 index.html.erb 中调用一个 ruby​​ 方法来加载我所有的 javascript 文件?我知道你可以直接使用 js 来做到这一点,但我正在构建一个库,我希望客户端能够通过简单地调用我的方法来添加 javascript 文件。

我想它会是这样的 <%= library.get_javascripts %> 但我无法弄清楚代码的样子。

【问题讨论】:

  • 查看 javascript_include_tag

标签: javascript ruby-on-rails ruby


【解决方案1】:

默认情况下,您包含在 app/assets 文件夹中的任何 javascript/css 文件都将通过您的布局视图加载,因此,您可以在 app/views 文件夹中的任何视图中访问这些方法。

如果你想专门加载一些东西,即从供应商文件夹中,你可以像这样使用 rails helper asset_path

对于 css 文件:

<link rel="stylesheet" href="<%= asset_path 'my_vendor_css_file.css' %>">

对于一个js文件:

<script src="<%= asset_path 'my_vendor_js_file.js' %>"></script>

将任何一个添加到您的 index.html.erb 文件中以将其加载到那里。

【讨论】:

  • 我将如何将其封装在一个方法中?正如我所说,我想简单地调用 index.html.erb 和方法中的方法来获得像你说的那样的东西。所以 并在一个 ruby​​ 文件(在我的库中)有一个名为 getJS 的方法。
  • 你在哪里建立你的图书馆?如果你在 app/assets/javascripts 目录中构建它,你不需要做任何事情,它会被包含在内,因为 " true %>" 在您的布局文件夹中的 application.html.erb 文件中。
  • 否则只需将其添加到 index.html.erb 文件中的某个位置,帮助程序将自动包含您在您指定的包含 javascripts 库的目录中创建的任何新文件:' javascript_include_tag "/some_directory/ my_lib_of_javascripts" '
  • 更明确地说:我正在构建一个包供其他人使用并且易于操作。这就是为什么我不想把我的 javascripts 放在某个特殊的地方,我只是希望它们在我的包中,并通过调用我的函数 getJS 从包中包含。
【解决方案2】:

类似于

Ruby on Rails 有 javascript_tagjavascript_include_tag

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-04-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-28
    • 2010-12-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多