用户#new中的ArgumentError表单中的第一个参数不能包含nil或为空

时间:2013-09-10 23:49:40

标签: ruby-on-rails ruby

我正在做一个ruby on rails教程,突然转到注册页面返回:

enter image description here

任何人都知道修复?或者就此而言出了什么问题?它看起来非常突然,我认为我没有改变任何会影响注册页面的内容......

class UsersController < ApplicationController

  def show
    @user = User.find(params[:id])
  end

  def create
    @user = User.new(user_params)
    if @user.save
      redirect_to @user
    else
      render 'new'
    end
  end

  private

  def user_params
    params.require(:user).permit(:name, :email, :password,
                                 :password_confirmation)
  end
end

1 个答案:

答案 0 :(得分:1)

这意味着您的@user对象未初始化..

您需要初始化@user变量。这里有几个选项。

确保您的new方法在UsersController课程中对其进行初始化:

def new
  @user = User.new
end

另一种选择是在表单中使用新对象:

<%= form_for(User.new) do |f| %>

还有另一个选择,就是在您的视图中,在回显form_for之前,放置:

<% @user = User.new %>

我最好的建议是将变量放在控制器中,就像我在第一个例子中所做的那样。