私は、モデルクラス内にActiveRecordを作成して保存しなければならない割り当てをしようとしています。 rspecはこれを確認するためにfind_byメソッドを使用する予定です。 ------------オブジェクトのActiveRecordメソッド(find_by)が見つかりません
-----------------------
class User < ActiveRecord::Base
attr_accessor :id, :username, :password_digest, :created_at, :updated_at
after_initialize :add_user
def initialize(attributes={})
@username = attributes[:username]
@password_digest = attributes[:password_digest]
super
end
def add_user
self[:username] = @username
self[:password_digest] = @password_digest
self.save
self[:id] = self.id
end
end
:ここに私のモデルです----
User.new(params)を実行すると、レコードは実際にはDBに正しく格納されます。しかし、返されたオブジェクトにはfind_byメソッドがありません。したがって、rspecは失敗します。私はどこでも見てきましたが、解決策を見つけることができません。私はノブですので、答えが明白であり、私がそれを見ることができない場合、ごめんなさい。私はUser.new(のparams)を行う場合
失敗したRSpecの例とエラーメッセージを表示してください。 – Stefan
ActiveRecordオブジェクトには 'find_by'メソッドがありません。' find_by'はクラスメソッドです。 RSpecテストを表示できますか? – SteveTurczyn
これはかなり奇妙なコードです。たとえば、User.newにレコードを保存させることは非常に珍しいことです。 –