了解Scaffold Generator
“支架”“生成器”使用Rails 的动态“支架”(scaffold :somemodel) 可写出同样的代码,所以你会获得“样本代码”并且可自由地修改。
用法: script/generate scaffold ModelName? ControllerName? [action, ...]
通常选项:
-p, --pretend 运行但不做任何修改。
-f, --force 覆写现有文件。
-s, --skip 跳过现有文件。
-q, --quiet Keep is like a secret with /dev/null.
-t, --backtrace 调试:显示错误的 backtrace 。
-h, --help 显示此帮助信息。
建议:不应该让 script/generate scaffold 接受一个可选的DB 表名字做为一个参数? 临时的重命名表只允许使用生成sucks…
描述:
“支架”“生成器”创建与“模型”交互的“控制器”。如果“模型”不存在,它也创建“模型”。生成的代码赞同于“scaffold:model” 声明,但是当你希望定制你自己的“控制器”和“视图”时,它更容易移植。
“生成器”接受一个“模型”名字,一个可选的“控制器”名字,和一个“视图”列表做为参数。做为“支架”的“动作”和“视图”会被自动地创建。任何“视图”都是空代码。
做为“支架”的“动作”和“视图”是: index, list, show, new, create, edit, update, destroy 。
如果没有给出“控制器”的名字,则“控制器”名字使用“模型”名字的复数形式。“模型”和“控制器”的名字可以使用“骆峰风格”或者带有下划线,但是不可以带有前缀 ‘Model’ 或‘Controller’ 字样。“模型”和“控制器”的名字可能像文件路径一样使用模块做为前缀;可以查看“模块例子”的用法。
例子:
./script/generate scaffold Account Bank debit credit
这命令会生成一个Account “模型”和带有完整测试组以及基本接口的BankController “控制器”。现在在你的数据库中创建accounts 表并导航浏览器已http://localhost/bank/— 你已在Rails 中了!
“模块例子”:
./script/generate controller 'admin/credit_card' suspend late_fee
这会在amin 模块内创建一个CreditCard “模型”和CreditCardController “控制器”。
深入“支架”
您可以使用AjaxScaffold generator ,它提供了与缺省的“支架”“生成器”的所有功能,但是使用Ajax 会使“支架”更容易使用。这儿是一些AjaxScaffold 的优点:
Question: does “generate scaffold” really emulate the “scaffold” method ?
If so, how do I merge two different scaffolded models in one controller?, like I’d do with
scaffold :foo, :suffix=>true
scaffold :bar, :suffix=>true