ActionController :: UrlGenerationError缺少必需的键:

我是ruby的新手 – 尝试使用rails而且我已经陷入困境,试图做一个简单的注册表单:

 



这是一个错误:

 No route matches {:action=>"show", :controller=>"user"} missing required keys: [:id] 

任何人都能解释这实际意味着什么?

编辑:

我正在关注本教程,只是将post更改为用户: http : //guides.rubyonrails.org/getting_started.html

form_for应该总是得到一个对象..就像控制器中的用户一样

 # controller def new @user = User.new end # form <%= form_for @user,... 

或者您可以使用form_tag方法,该方法不依赖于对象。

查看代码,您正在使用user_path为单个用户创建链接,理想情况下该代码应该是user_path(@user) ,这就是为什么您要获取id的错误。

在您的情况下,您指定了正确的模型,路径,但您没有实例化一个对象,这就是为什么您通过引用show动作获得id错误的原因,因为user_path需要您所user_path的特定用户的ID。

希望这能澄清一些事情。

我想你的问题已经解决了,但我想我也会指出,如果你想遵循Rails惯例,你的控制器应该是复数(UsersController):)这样可以更方便地使用你所遵循的教程来改变结果你喜欢!