在Rails中重命名控制器并清除生成的内容
我跟着关于restful_authentication插件的跟踪。
他建议运行以下命令:
脚本/生成经过身份验证的用户会话
我做到了,一切都产生了"罚款",但是会议将无法进行。他再次检查该站点时,提到了命名标准并列出了更新的代码,其中指出:
脚本/生成经过身份验证的用户会话
随着会议的多元化。
因此,现在我有了带有SessionController的session_controller.rb,但是我猜按命名标准,它正在寻找SessionsController,从而导致代码因错误" SessionsController#create中的NameError"而失败
我看到了很明显的问题,但是我不知道的是,如何在不重新生成内容的情况下解决此问题?有没有一种方法可以逆转生成过程,以清除生成世代所做的所有更改?
我尝试仅使用e SessionsController类将文件重命名为sessions_controller,但是失败了。
在撰写本文时,我解决了自己的问题。我必须将会话重命名为路由文件中的map.resource,并将视图目录从会话重命名为会话,并将html.erb文件中的session_path更新为sessions_path。
所以我解决了我的问题,但是关于删除生成内容的答案仍然存在。是否可以取消生成内容?
解决方案
我们可以回滚到Subversion的先前版本,然后重新开始,对吗?正确的? :-)
rails具有" script / destroy",用于"不断更新"的东西,但是我怀疑这仅适用于rails附带的东西,而不适合静态的身份验证插件。
我想说,最好的选择是在文件中查找(或者,如果我们不使用IDE,则使用grep -R
)查找所有与旧SessionController相关的内容并进行更改
我从未尝试过script / destroy
,但是如果我们要还原刚刚进行的更改,那么generate命令应该会为我们提供添加文件和所做更改的列表。如果我们使用某种版本控制系统,则运行status / diff可能也会有所帮助。
实际上,script / destroy
对任何生成器都有效,生成器通过读取有关要创建哪些文件的各种脚本来工作。 " script / destroy"只是反向读取该脚本,并删除所有创建的文件,只要我们提供与传递给" script / generate"相同的参数即可。
综上所述:"脚本/销毁身份验证的用户会话"将为我们删除所有生成的文件,之后我们可以毫无问题地运行"脚本/生成用户会话"。