gpt4 book ai didi

ruby-on-rails - 从另一个 gem 获取一个 gem 的 Assets

转载 作者:数据小太阳 更新时间:2023-10-29 08:04:25 30 4
gpt4 key购买 nike

我正在创建一个 gem,它将包含 foundation-rails gem 以及一些在我的应用程序中使用的常用变量。我在 vendor/assets/stylesheets/foundation.scss 创建了一个样式表。我从我的应用程序中加载它

gem 文件

gem 'foobar-foundation-rails', path: '...'

app/assets/stylesheets/application.css

//= require foundation

这是一个很好的起点,但如何从该文件中包含 foundation-rails gem 的样式表?我不确定如何引用另一个 gem 的 Assets

最佳答案

我认为最好的方法是将 require 语句的责任放在 Rails 应用程序的 javascripts 文件中。这很可能不是您想埋藏在 gem 中的功能,因为它隐藏了正在发生的事情。

然后确保在 foundation-rails 需要之前需要 gem 的 css 文件。但是,您应该在 gem 的 gemspec 文件中添加依赖项要求,以确保在安装 gem 时 bundler 将安装 foundation-rails gem。

此外,您可能必须“命名空间”您的 gems 样式表以避免命名空间冲突。

vendor/assets/stylesheets/foobar_foundation_rails/foundation.css

这会将样式表文件中的 require 更改为

require 'foobar_foundation_rails/foundation.scss'

最后,gem 的命名确定了 gem 是如何被需要的。当你使用破折号时,Rails 期望一些东西是必需的,因此你的 gem 的目录结构要遵循

lib/foobar/foundation/rails

与下划线命名 foobar_foundation_rails 相反

lib/foobar_foundation_rails

除非您要为 foundation-rails gem 构建一个“扩展”,需要将其命名为 foundation-rails-foobar,否则您可能希望使用下划线语法来避免一些 require 的麻烦。设计 gem 是扩展 gem 的一个很好的例子。

关于ruby-on-rails - 从另一个 gem 获取一个 gem 的 Assets ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21389929/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com