Я пытаюсь выполнить назначение, которое требует от меня создать и сохранить ActiveRecord в моем классе Model, а затем вернуть его. 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), запись фактически хранится правильно в БД. Но для возвращаемого объекта отсутствует метод find_by. Таким образом, rspec терпит неудачу. Я везде искал, но не мог найти решение. Я ноб, извините, если ответ очевиден, и я не вижу его.
Покажите неудачный пример RSpec и сообщение об ошибке. – Stefan
Объекты ActiveRecord не имеют метода 'find_by' ...' find_by' - метод класса. Можете ли вы показать тест RSpec? – SteveTurczyn
Этот довольно странный код - например, с сохранением записи User.new очень необычно. –