Ruby on rails 在ruby中使用rails路由,html表单不起作用

Ruby on rails 在ruby中使用rails路由,html表单不起作用,ruby-on-rails,Ruby On Rails,我不熟悉ruby和rails,我使用以下命令生成了一个名为users的新控制器: rails generate controller users register index login 之后,我打开了register.html.erb,并编写了以下代码: <h1>Register New User</h1> <p> <%= form_for :user do |f| %> <%= f.label:USERID %>&

我不熟悉ruby和rails,我使用以下命令生成了一个名为users的新控制器:

rails generate controller users register index login
之后,我打开了
register.html.erb
,并编写了以下代码:

<h1>Register New User</h1>
<p>
    <%= form_for :user do |f| %>
    <%= f.label:USERID %><%= f.text_field:userid %><br />
    <%= f.label:PASSWORD %><%= f.text_field:password %><br />
    <%= f.label:EMAIL %><%= f.text_field:email %><br />
    <br />
    <%= f.submit %>
    <% end %>
</p>
def用户参数 参数require(:user).permit(:userid,:password,:email) 终止 结束

测试并没有被打印出来,表单的get和post方法根本不起作用。 和
参数require(:user)。permit(:userid,:password,:email)
也不起作用。我得到一个错误,
:user
为空

我得到的错误是:用户为空

form\u for(path/to/your/controller/action)
是一种帮助方法,用于创建带有POST或GET请求url路径的HTML表单元素。助手根据您在控制器操作中要求执行的操作,知道它应该是新记录还是更新记录。因此,基本上,当您在视图中为@user编写
表单时,它在相应的控制器操作中查找
@user
。由于您当前没有它,因此会出现此错误

有关更多信息,请参阅

要解决当前问题,您必须在控制器的
寄存器中定义
@user
操作:

  def register
     @user = User.new(user_params)
  end
然后,在
register.html.erb
文件的表单中,可以使用该
@user

<h1>Register New User</h1>
<p>
  <%= form_for @user do |f| %>
      <%= f.label :USERID %>
      <%= f.text_field :userid %><br />
      <%= f.label :PASSWORD %>
      <%= f.text_field :password %><br />
      <%= f.label :EMAIL %>
      <%= f.text_field :email %><br />
      <br />
      <%= f.submit %>
  <% end %>
</p>
注册新用户






仍将收到此错误:参数丢失或值为空:userUse
@user
:user
在视图的表单中。请仔细看我的代码。
<h1>Register New User</h1>
<p>
  <%= form_for @user do |f| %>
      <%= f.label :USERID %>
      <%= f.text_field :userid %><br />
      <%= f.label :PASSWORD %>
      <%= f.text_field :password %><br />
      <%= f.label :EMAIL %>
      <%= f.text_field :email %><br />
      <br />
      <%= f.submit %>
  <% end %>
</p>