Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 如何从新模板重新运行脚手架视图创建_Ruby On Rails_Ruby On Rails 3_Ruby On Rails 3.2 - Fatal编程技术网

Ruby on rails 如何从新模板重新运行脚手架视图创建

Ruby on rails 如何从新模板重新运行脚手架视图创建,ruby-on-rails,ruby-on-rails-3,ruby-on-rails-3.2,Ruby On Rails,Ruby On Rails 3,Ruby On Rails 3.2,虽然Rails脚手架系统节省了大量的时间,但我发现给定的站点将根据特定的框架具有不同的视图集。直到最近,我都会手动编辑五个视图文件{{u form,edit,index,new,show}中的每一个,以适应特定的设计,但这已经过时了 超越默认模板的能力是一个极好的新特性,我现在经常使用它。问题是,我可能有很多控制器和视图,如果在创建视图文件后需要在视图文件中重做html,我需要全部编辑它们或使用精心设计的“sed”命令 我更希望能够重新运行scaffold生成器,但仅限于视图。比如: $ rai

虽然Rails脚手架系统节省了大量的时间,但我发现给定的站点将根据特定的框架具有不同的视图集。直到最近,我都会手动编辑五个视图文件{{u form,edit,index,new,show}中的每一个,以适应特定的设计,但这已经过时了

超越默认模板的能力是一个极好的新特性,我现在经常使用它。问题是,我可能有很多控制器和视图,如果在创建视图文件后需要在视图文件中重做html,我需要全部编辑它们或使用精心设计的“sed”命令

我更希望能够重新运行scaffold生成器,但仅限于视图。比如:

$ rails g redo-views Post
这将从新模板中重新创建五个文件,只剩下控制器、模型、迁移和其他所有内容。我能想到的唯一替代方法是分别创建一个虚拟站点,然后手动复制每个控制器的视图文件。这还要求我知道脚手架生成过程中最初使用的参数,以便创建正确的字段

有更好/更简单的方法吗?

试试这个:

rails g erb:scaffold Post

rails g erb:脚手架帖子标题内容

但是,您需要在此命令中指定所有属性


一个快捷方式是使用它,您可以复制一个字符串并将其附加到
rails g erb:scaffold
,这样您就不需要手动一个接一个地包含所有属性

您的意思是想要类似于
rails generate controller home index
这样的东西,它应该只生成
索引
操作我记得做过什么吗如
railsgerb:scaffold帖子标题内容
。但是,您需要显式地包含所有属性。它不会从模式中自动加载属性。我以前用过一个gem专门处理这个问题。它基本上只是打印出一个模型的所有属性的字符串,就像生成一个脚手架一样。因此,我将复制字符串并将其粘贴到railsgerb之后。我忘了宝石的名字,如果我记得的话,我会更新的。你好。问题是,这并没有添加所有表单属性。假设我从$rails g scaffold Post title body:text author:references(等等)开始。如果我想重做视图,我需要重新运行整个命令,包括所有字段属性。我想知道是否有更简单的方法。