2014-10-30 2 views
0

Я сохраняю период выставления счетов Stripe базе данных и по умолчанию сохраняет ее как временную отметку эпохи 1441292360. Как сохранить его как ГГГГ-ММ-ДД в таблице «Подписки» для столбца cancellation_date?Сохранение формата временной отметки в качестве даты

Подписка модель:

belongs_to :plan 
    belongs_to :subscription 
    belongs_to :user 

    validates_presence_of :plan_id 
    validates_presence_of :email 

    def save_with_stripe_payment 
    customer = Stripe::Customer.create(description: email, plan: plan_id, card: stripe_card_token) 
    self.stripe_customer_token = customer.id 
    self.cancellation_date = customer.subscriptions.first.current_period_end 
    save! 
    rescue Stripe::InvalidRequestError => e 
    logger.error "Stripe error while creating customer: #{e.message}" 
    errors.add :base, "There was a problem with your credit card." 
    false 
    end 
+3

Преобразуйте его в строку? Но почему? Если бы ничто другое, я бы подумал о том, чтобы сохранить его как метку времени или дату. –

+0

Первоначальная миграция имела его как строку 'add_column: subscriptions,: cancelation_date,: string'. Сохранение его в качестве даты было вопросом, который у меня был, как я могу сохранить его как дату. –

+0

Нет, вы спросили, как вы можете сохранить его как «ГГГГ-ММ-ДД», который не является датой, это конкретное представление даты. В любом случае ответ Мохамеда верен: переведите его на дату, пока он показал. –

ответ

1

Если у вас есть время Unix, вы можете преобразовать его в рубиновый Time объекта, запустив Time.at(unix_time_integer). Чтобы сделать переход на дату, вы можете запустить Time.at(unix_time_integer).to_date.

Смежные вопросы