Rails 脚手架 scss 每次生成脚手架时都会重置

Posted

技术标签:

【中文标题】Rails 脚手架 scss 每次生成脚手架时都会重置【英文标题】:Rails scaffolds scss reset each time a scaffold is generated 【发布时间】:2012-09-26 22:03:42 【问题描述】:

每次我执行rails generate scaffold Name 时,app/assets/stylesheets/scaffolds.css.scss 文件都会被覆盖(好吧,我会被提示覆盖它)。我不想要这个,所以我当然可以在提示覆盖时输入n,但我想知道处理脚手架样式的正确方法。

我可以将 css 写入稍后加载的 css 文件中,以覆盖脚手架.css.scss 文件中必要的 css。但不仅丑陋(生成并加载了每个请求的不必要/未使用的 css),而且我不知道如何在将鼠标悬停在链接上时不更改前景色和背景色(来自scaffolds.css.scss):

a 
  &:hover 
    color: #fff;
    background-color: #000;
  

scaffolds.css.scss 中删除类似上述内容的正确方法是什么?

【问题讨论】:

【参考方案1】:

想要永久禁用禁用样式表,或者通常忘记--no-stylesheets 开关(我愿意!)

在您的生成器中禁用样式表!!

config/application.rb

config.generators do |g|
 g.stylesheets false
end

【讨论】:

这记录在guides.rubyonrails.org/… 是的,但是,它可以生成资源 css 而不是脚手架 css?【参考方案2】:

看看这个*** answer

rails g scaffold MyModel --no-stylesheets

【讨论】:

所以要更改脚手架的样式表,我们应该修改scaffolds.css.scss,然后不为脚手架生成样式表? 我认为这有点讨论,但脚手架被认为非常适合快速原型制作。一旦您设置好模型或有一个良好的开始,您可以修改代码或从头开始,如果您知道自己想要什么。更多讨论here 我的问题是关于修改脚手架样式表的正确方法(默认情况下,它似乎也包含在 Rails 的所有网页中),而不是脚手架何时以及是否有用。【参考方案3】:

请记住,您始终可以在自己的样式表中重新定义这些内容,并通过修改 assets/stylesheets/application.css 将它们包含在脚手架样式表之后

 *= require_self
 *= require scaffolds
 *= require YOUR_FILE

(如果您不使用 application.css,默认情况下样式表按字母顺序包含,这可能是您想要的,也可能不是。)

【讨论】:

以上是关于Rails 脚手架 scss 每次生成脚手架时都会重置的主要内容,如果未能解决你的问题,请参考以下文章

Rails 脚手架黑色背景

Rails 的脚手架 - 引导应用程序

Ruby/Rails:生成脚手架的代码在哪里

跳过 Rails 中的 JSON 格式生成脚手架

Rails 生成脚手架错误消息

在 Rails 中更改脚手架控制器生成器模板