Я использую Rails 5. Я хочу, чтобы метод вызывался на моей модели только тогда, когда модель была впервые создана. Я попытался это ...Как вызвать метод только тогда, когда мой объект (модель) сначала создается в Rails 5?
class UserSubscription < ApplicationRecord
belongs_to :user
belongs_to :scenario
def self.find_active_subscriptions_by_user(user)
UserSubscription.joins(:scenario)
.where(["user_id = ? and start_date < NOW() and end_date > NOW()", user.id])
end
after_initialize do |user_subscription|
self.consumer_key = SecureRandom.urlsafe_base64(10)
self.consumer_secret = SecureRandom.urlsafe_base64(25)
end
end
, но я заметил это вызывается каждый tiem я извлечение модели из метода поиска в дополнении к его начать создан. Как создать такую функциональность в моей модели?
Вы можете заменить этот метод поиска областью видимости: 'scope: active_subscriptions_by_user, -> (пользователь) {где (" user_id =? И start_date NOW() ", user.id)} ' –
mysmallidea