我已经开始使用 ActiveRecord 来访问我的数据库,它非常有用。然而,访问对象内部的数据ActiveRecord::Relation
似乎是一个挑战。我使用以下方法查询我的数据库:
post '/login' do
session.clear
r = User.where(:username => params["user"], :password => Digest::MD5.hexdigest(params["pass"]))
if r.count == 1
session[:user] = r
session[:user].delete(:password)
status 200
else
status 401
end
end
使用返回的数据,Ruby 会检查以确保有一行,如果有,则将r
对象的内容设置为 hash session[:user]
。然后,理想情况下,它应该从对象中删除密码数据,session[:user]
以便它只提供识别用户的详细信息。但是,使用此代码,我得到错误:wrong number of arguments (1 for 0)
指向.delete
行。那么,如何从该对象中删除密码数据,或将其转换为哈希,因为我知道我可以删除哈希格式的密码。