无法在Ruby上创建一个新的模型对象 - params是一个符号?

时间:2013-04-06 22:17:47

标签: ruby-on-rails

我得到一个奇怪的错误,我不明白。似乎当我尝试创建一个新的模型对象时,关于params的一些东西正在作为符号,我无法对它们做任何事情。

我得到的错误是:

can't convert Symbol into Integer

控制器操作是:

def create
user_info = :params[:user]
if !user_info.value? ""
    if user_info[:password] == user_info[:password2] and user_info[:email] == user_info[:email2]
        user_info.delete("password2")
        user_info.delete("email2")
        @user = User.create!(user_info)
        @user = User.new(user_info)

        respond_to do |format|
            if @user.save
                format.html  { redirect_to(@user, :notice => 'User was successfully created.') }
            else
                format.html  { render :action => "new" }
            end
        end
end
flash[:warning] = "Please try again"
redirect_to home_index_path

  end

我尝试使用""提交属性,但是我收到此错误。当我删除指示的问题行user_info = :params[:user]并根据:params[:user]更改了所有内容时,它仍然会抛出错误并指示下一行是问题。

谁能明白为什么?

1 个答案:

答案 0 :(得分:3)

打开

user_info = :params[:user] 

为:

user_info = params[:user]