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):)这样可以更方便地使用你所遵循的教程来改变结果你喜欢!