ruby-on-rails - 如何访问 Sass 中的 Rails 对象?

标签 ruby-on-rails css sass erb

在 Rails 3.1.0 元素中,我的公司具有一些可自定义的属性,例如 background_color 和 link_color。我希望能够像这样设置一些 Sass 变量:

$background_color: <%= @company.background_color %>
$link_color: <%= @company.link_color

...

这是行不通的,因为当 Sass 执行它的操作时,@company 为 nil。我不确定如何以动态的方式解决这个问题(可以创建公司,可以更改颜色,并且可以立即更新 View )。有什么建议吗?

最佳答案

我可以想到几个方法:

  1. 通过 Controller 提供您的样式表。
  2. 使用 CSS 类来配置颜色并通过 Controller 、内联部分或 CSS 仅提供该 CSS @import .

通过 Controller 提供样式表非常简单,因此无需多言。这可能有点丑陋和麻烦。

对于第二个,您需要添加几个额外的 CSS 类:

.custom-bg {
    background-color: some-default-bg;
}
.link-fg {
    color: some-default-fg;
}
/*...*/

然后任何需要使用自定义背景颜色的元素都需要它们通常的 CSS 类和 custom-bg ;其他可配置值需要类似的恶作剧。要提供自定义 CSS,您可以内联 <style>使用标准的 ERB 部分将元素添加到您的 HTML 中,或者您可以通过 Controller (通过 <style src="...">@import)提供 CSS。因此,您可以在 HTML 中使用老派的多个 CSS 类来伪造 SASSy 的优点。

还有 JavaScript。你需要一些方法来识别需要调整颜色的元素,然后直接用这样的东西调整它们:

$('.need-custom-background').css('background-color', '...');

关于ruby-on-rails - 如何访问 Sass 中的 Rails 对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7440335/

相关文章:

css - 使用 Jekyll-Assets 设置背景图片

ruby-on-rails - heroku rails 应用程序域仅在没有 www 的情况下工作

ruby-on-rails - 从另一个本地分支推送到 heroku

css - Gulp 任务没有创建 css 文件

css - 使div大于容器

javascript - 如何在 extJS 标记字段中显示默认消息

css - 将侧边栏切换为部分隐藏侧边栏

ruby-on-rails - Controller 操作方法的原始输出

ruby-on-rails - 使用 Prawn 和 Prawnto 生成 PDF

javascript - 使用 javascript 创建垂直响应式导航栏