データベースにアクセスするために 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 は 1 つの行があることを確認し、1 つの行がある場合は、r
オブジェクトの内容を hashに設定しますsession[:user]
。次に、理想的には、session[:user]
オブジェクトからパスワード データを削除して、ユーザーを識別するための詳細のみを提供する必要があります。ただし、このコードを使用wrong number of arguments (1 for 0)
すると、行を指しているというエラーが発生します.delete
。では、このオブジェクトからパスワード データを削除したり、ハッシュに変換したりするにはどうすればよいでしょうか。ハッシュ形式のパスワードを削除できることはわかっています。