在我的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(我将从另一个表中获取id),但上面的代码不保存EXP_ID。除EXP_ID外,将保存所有其他值。
如果我在Expression模型中注释掉'set_primary_key“EXP_ID”',它可以工作但我需要将EXP_ID定义为主键。 在将数据库保存到dbase时,有没有办法为主键分配值?
如果有人能给我一些提示,我将不胜感激。
答案 0 :(得分:3)
在EXP_ID
模型中定义的before_save
过滤器中设置Expression
。
<强>更新强>
添加样本:
before_save :set_exp_id
def set_exp_id
self.exp_id = 5555555
end