12

我正在关注有关 restful_authentication 插件的 railscast。

他建议运行命令:

脚本/生成经过身份验证的用户会话

我做了什么,一切都“很好”,但随后会话不起作用。再次检查该站点,他提到了一个命名标准并列出了更新的代码,其中指出:

脚本/生成经过身份验证的用户会话

随着会议的多元化。

所以现在我有一个带有 SessionController 的 session_controller.rb,但我猜根据命名标准,它正在寻找 SessionsController,导致代码失败并出现错误“SessionsController#create 中的 NameError”

我看到了问题,这很明显,但我不知道的是,如何在不重新生成内容的情况下解决这个问题?有没有办法逆转生成过程以清除生成的所有更改?

我尝试使用 e SessionsController 类将文件重命名为 session_controller,但失败了。

在写这篇文章时,我解决了自己的问题。我必须将路由文件中的会话重命名为 map.resource 并将视图目录从会话重命名为会话,并将 html.erb 文件中的 session_path 更新为 session_path。

所以我解决了我的问题,但我关于删除生成内容的答案仍然存在。是否可以取消生成内容?

4

3 回答 3

14

实际上,script/destroy适用于任何生成器 - 生成器通过读取有关要创建的文件的各种脚本来工作;script/destroy只需反向读取该脚本并删除所有创建的文件,只要您为其提供与传递给script/generate.

总结一下:script/destroy authenticated user session将为您删除所有生成的文件,之后您可以script/generate user sessions毫无问题地运行。

于 2008-09-18T08:29:12.137 回答
2

我从未尝试过script/destroy,但如果您要恢复刚刚所做的更改,那么 generate 命令应该会为您提供添加的文件和所做更改的列表。如果您使用某种版本控制系统,运行 status/diff 也可能会有所帮助。

于 2008-09-18T04:34:33.277 回答
1

你可以在 subversion 中回滚到上一个版本,然后重新开始,对吗?对?:-)

rails 有script/destroy“未生成”的东西,但我怀疑它只适用于 rails 附带的东西,而不适用于 restful 身份验证插件。

我会说你最好的选择是在文件中查找(或者grep -R如果你没有使用 IDE) - 找到所有引用你的旧 SessionController 并更改它

于 2008-09-18T02:38:24.553 回答