使用params hash的内容手动实例化Devise用户模型

时间:2012-10-17 09:50:47

标签: ruby ruby-on-rails-3 devise

我正在试图解决这个问题:

有一个注册模块,它对主设备注册控制器进行了一步,我必须使用User.new(...)手动实例化Devise生成的用户模型。我正在使用form_tag提交User.new()所需的所有必要参数。这是我的代码的截断版本:

def registration_three

  @user = User.new(:email => params[:email], :password => params[:password], :password_confirmation => params[:password_confirmation])
  @user.save

  @user = User.new(:email => 'patlopez@yahoo.com', :password => 'qwertyui', :password_confirmation => 'qwertyui')
  @user.save

end

第二个@ user.save有效,但第一个没有。根据stdout中的print语句,params [:email],params [:password]和params [:password_confirmation]肯定存在。

有人有什么想法吗?

编辑: 所以我尝试将第二个User.new(...)中的所有单引号字符串更改为双引号字符串,如存储在params哈希中的字符串......并且第二个实例化也失败了。所以我很确定这个问题涉及双引号和单引号字符串。任何人都知道如何将双引号字符串转换为单引号字符串?提前致谢。

1 个答案:

答案 0 :(得分:0)

首先将变量存储在变量中,然后在查询中使用它们以避免引用错误