【发布时间】:2019-01-23 10:03:59
【问题描述】:
我对 Ruby on Rails 还很陌生,所以请多多包涵 :)
我正在 Rails 中处理一个导入的 .csv 文件,并且我想以编程方式创建新用户(我正在使用 AuthLogic Gem 和 Role Requirement),目前我正在使用:
示例行:
Steve.Jobs@apple.com, Steve, Jobs, 555-APPLE
代码:
def new_user(line)
params = Hash.new
params[:user] = Hash.new
params[:user]["email"] = line[0]
params[:user]["first_name"] = line[1]
params[:user]["last_name"] = line[3]
params[:user]["phone"] = line[4]
user = User.new(params[:user])
user.save
end
问题在于这不会添加新用户,它会尝试但失败(DB Begin 后跟 Rollback),我假设是因为我没有填写所有字段,例如登录名、密码等。
我是否必须为这些字段显式生成值?
【问题讨论】:
-
你能发布你的用户对象吗?另外,您可以使用 user.valid?查看用户对象是否有效,并且 user.errors 数组将包含您尝试保存时所有错误的列表。
-
嗨,Rob,感谢您回复我,看来从调用 user.errors 开始,问题是我没有指定密码或登录名(用户名)。密码问题很简单:password = ActiveSupport::SecureRandom.base64(6) params[:user]["password"] = password params[:user]["password_confirmation"] = password 设置密码,但是如何选择远程用户友好且唯一的登录名?