10

我对 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 %>

这给出了一个错误:

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

谁能解释这实际上意味着什么?

编辑:

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

4

2 回答 2

1

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

# controller
def new
  @user = User.new
end

# form
<%= form_for @user,...

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

于 2013-07-16T22:02:30.863 回答
1

我也遇到过类似的问题。

控制器名称应该是复数(即用户)和

new.html.rb 中的第一行应如下所示:

<%= form_for :user, url: users_path do |f| %>
于 2020-07-18T08:51:40.583 回答