在Rails中重命名控制器并清除生成的内容

时间:2020-03-06 14:19:45  来源:igfitidea点击:

我跟着关于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"相同的参数即可。

综上所述:"脚本/销毁身份验证的用户会话"将为我们删除所有生成的文件,之后我们可以毫无问题地运行"脚本/生成用户会话"。