Переименовывая created_at, updated_at столбцы ActiveRecord/Rails

function myFunction(){//changed line no need to add ; here
var text_input = document.getElementById("input001").value;
 if (text_input == "4") {
   document.getElementById("message001").innerText = "Correct!";
  } else {
   document.getElementById("message001").innerText = "nope";
  }
}
13
задан Rainer Blessing 9 April 2009 в 10:20
поделиться

3 ответа

Простого способа сделать это не существует. Вы можете сделать это либо переопределив модуль ActiveRecord::Timestamp, либо написав свой собственный, который будет делать это за вас.

Вот как работает эта магия.

4
ответ дан 1 December 2019 в 17:16
поделиться

быстрый уродливый взлом, основанный на ответе Милана Новоты: добавьте следующее к environment.rb, заменив значения CREATED_COL и константы UPDATED_COL с желаемыми именами столбцов:


module ActiveRecord
  module Timestamp
    CREATED_COL = 'created_at'
    UPDATED_COL = 'updated_at'
    private
      def create_with_timestamps #:nodoc:
        if record_timestamps
          t = self.class.default_timezone == :utc ? Time.now.utc : Time.now
          write_attribute(CREATED_COL, t) if respond_to?(CREATED_COL) && send(CREATED_COL).nil?
          write_attribute(UPDATED_COL, t) if respond_to?(UPDATED_COL) && send(UPDATED_COL).nil?
        end
        create_without_timestamps
      end

      def update_with_timestamps(*args) #:nodoc:
        if record_timestamps && (!partial_updates? || changed?)
          t = self.class.default_timezone == :utc ? Time.now.utc : Time.now
          write_attribute(UPDATED_COL, t) if respond_to?(UPDATED_COL)
        end
        update_without_timestamps(*args)
      end
  end
end
3
ответ дан 1 December 2019 в 17:16
поделиться

Или вы можете просто сделать свои собственные столбцы (DateTime) и просто вручную установить столбец created_at при создании и установить столбец updated_at при обновлении. Это может быть проще, чем описанный выше хак. Это то, что я собираюсь сделать. А еще лучше, обновите rails, чтобы мы могли изменять эти имена.

0
ответ дан 1 December 2019 в 17:16
поделиться
Другие вопросы по тегам:

Похожие вопросы: