У меня
@user = User.find(1)
@event = Event.find(1)
for interest in @event.interests
@user.choices.create(:interest => interest, :score => 1)
end
Работает нормально, но каждый раз создает записи.Я хотел бы проверить, существует ли запись с соответствующим интерессом из цикла for, и если это так, я бы хотел обновить, иначе создание - это нормально.
Я оглянулся и нашел метод "find_or_create_by"но это на самом деле не работает для меня.Я имел =>
@user.choices.find_or_create_by_interest(:interest => interest.id, :score => 1)
и получаю ошибку "неопределенный метод` find_by_interest '".
Вы видите, что я делаю не так?Или лучше придерживаться оператора if / else?
Я не был уверен, что у метода find_or_create_by есть возможность обновления атрибута внутри него.