Установите вручную значение первичного ключа при сохранении данных в рельсах - PullRequest
2 голосов
/ 01 ноября 2011

В моем приложении rails я использую устаревшую базу данных.

class Expression < ActiveRecord::Base
set_table_name "EXPRESSION"
set_primary_key "EXP_ID"

belongs_to :sub, :foreign_key => "EXP_SUB_FK"

end

Чтобы сохранить запись в таблице 'EXPRESSION', я использую следующий код в методе моего контроллера:

@expression = Expression.create(
                        :EXP_ID => 7,
                        :EXP_SUB_FK => 99991886,
                        :EXP_STRENGTH => 'strong',
                        :EXP_ADDITIONAL_STRENGTH => 'intense',
                        :EXP_COMPONENT_ID => 43444
                       )

Мне нужно вручную устанавливать EXP_ID каждый раз, когда я сохраняю запись (я получу идентификатор из другой таблицы), но приведенный выше код не сохраняет EXP_ID. Все остальные значения сохраняются за исключением EXP_ID.

Если я закомментирую 'set_primary_key "EXP_ID" в модели Expression, это будет работать, но мне нужно определить EXP_ID в качестве первичного ключа. Есть ли способ присвоения значения первичному ключу при сохранении записи в базе данных?

Буду признателен, если кто-нибудь даст мне какой-нибудь намек.

1 Ответ

3 голосов
/ 01 ноября 2011

Установите EXP_ID в before_save фильтре, определенном в модели Expression.

UPDATE:

Добавленный образец:

before_save :set_exp_id
def set_exp_id
  self.exp_id = 5555555
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...