ActionController :: UrlGenerationError缺少必需的键:[:id]

Mar*_*ace 10 ruby ruby-on-rails

我是ruby的新手 - 尝试使用rails并且我已经试图做一个简单的注册表单了:

<%= form_for :user, url: user_path do |f| %>
    <p>
      <%= f.label :email %><br>
      <%= f.text_field :email %>
    </p>

    <p>
      <%= f.label :password %><br>
      <%= f.password_field :password %>
    </p>

    <p>
      <%= f.submit %>
    </p>
<% end %>
Run Code Online (Sandbox Code Playgroud)

这是一个错误:

No route matches {:action=>"show", :controller=>"user"} missing required keys: [:id]
Run Code Online (Sandbox Code Playgroud)

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

编辑:

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

Bvu*_*Ic7 1

form_for 应该始终获取一个对象..就像来自控制器的用户一样

# controller
def new
  @user = User.new
end

# form
<%= form_for @user,...
Run Code Online (Sandbox Code Playgroud)

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