Rails 7中如何让rails g scaffold生成旧版样式的CSS文件?
Rails 7.0.3.1脚手架不生成CSS样式表的解决办法
1. 单次生成时强制生成样式
执行脚手架命令时添加--css scaffold参数,就能生成和旧版一致的scaffold样式文件:
rails g scaffold Post title:string body:text --css scaffold
该命令会在app/assets/stylesheets/目录下生成scaffolds.css(或scaffolds.scss,取决于项目配置),包含传统的脚手架样式。
2. 全局配置默认生成样式
如果希望每次生成脚手架都自动生成样式,修改项目配置:
- 打开
config/application.rb - 在
Application类的定义块中添加生成器配置:
config.generators do |g| g.stylesheets true # 开启样式文件生成 g.javascripts false # 按需设置是否生成JS文件,不需要就保持false end
保存配置后,后续的rails g scaffold命令会自动生成对应的CSS文件。
3. 手动补全样式文件
如果已经生成了脚手架但没生成样式,可以手动添加:
- 在
app/assets/stylesheets/下创建scaffolds.css文件 - 填入旧版Rails的scaffold基础样式(示例如下):
body { background-color: #fff; color: #333; font-family: verdana, arial, helvetica, sans-serif; font-size: 13px; line-height: 18px; } p, ol, ul, td { font-family: verdana, arial, helvetica, sans-serif; font-size: 13px; line-height: 18px; } pre { background-color: #eee; padding: 10px; font-size: 11px; } a { color: #000; } a:visited { color: #666; } a:hover { color: #fff; background-color: #000; } div.field, div.actions { margin-bottom: 10px; } #notice { color: green; } .field_with_errors { padding: 2px; background-color: red; display: table; } #error_explanation { width: 450px; border: 2px solid red; padding: 7px; padding-bottom: 0; margin-bottom: 20px; background-color: #f0f0f0; } #error_explanation h2 { text-align: left; font-weight: bold; padding: 5px 5px 5px 15px; font-size: 12px; margin: -7px; margin-bottom: 0px; background-color: #c00; color: #fff; } #error_explanation ul li { font-size: 12px; list-style: square; }
- 在
app/assets/stylesheets/application.css中引入该文件:
*= require scaffolds *= require_tree . *= require_self
注意:如果你的项目使用了CSS Bundling(如Tailwind、Bootstrap),需要调整样式引入方式以适配对应的打包工具。
内容的提问来源于stack exchange,提问作者stan
相关产品推荐
相关产品推荐

