как назначить различное значение столбцу для разных строк - PullRequest
1 голос
/ 06 мая 2011

Например, есть таблица, подобная следующей:
Столбец_А Столбец_В Столбец_C

  1. Я хочу добавить столбец D, используя миграцию ruby ​​
  2. У меня есть функция getColumnDValue (columnC). Эта функция может получить значение столбца D на основе значения столбца C
  3. Я хочу присвоить различные значения столбцу D на основе значения столбца C.

Как это сделать ????

Я проверил Update_All и Update. Тем не менее, кажется, что они бесполезны для моего случая. Или, по крайней мере, я не знаю, как использовать эти методы для достижения моей цели.

1 Ответ

1 голос
/ 06 мая 2011

Если я вас правильно понимаю, вы хотите установить значение d обычным способом, например так: myobject.d = 5. На основе значения в c, d будет сохранено с правильным значением.

Этого можно достичь с помощью фильтра before_save, в котором вы установите новое значение для d.

Вы также можете перезаписать метод установки для d:

def d=(value)
  write_attribute(:d, getColumnDValue(value))
end

С первым методом, фильтром, ваш объект будет иметь «недопустимое» значение, пока не будет сохранен. Если вы перезаписаете установщик, новое значение будет немедленно записано в объект. Вам решать, какой метод подходит вам лучше всего.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...