Ruby on rails 在rails中保存数据时手动设置主键的值

Ruby on rails 在rails中保存数据时手动设置主键的值,ruby-on-rails,Ruby On Rails,在我的rails应用程序中,我使用的是一个遗留数据库 class Expression < ActiveRecord::Base set_table_name "EXPRESSION" set_primary_key "EXP_ID" belongs_to :sub, :foreign_key => "EXP_SUB_FK" end 每次保存条目时,我都必须手动设置EXP\u ID(我将从另一个表中获取ID),但是上面的代码不保存EXP\u ID。除了EXP\u ID之外,所有

在我的rails应用程序中,我使用的是一个遗留数据库

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

belongs_to :sub, :foreign_key => "EXP_SUB_FK"

end
每次保存条目时,我都必须手动设置EXP\u ID(我将从另一个表中获取ID),但是上面的代码不保存EXP\u ID。除了EXP\u ID之外,所有其他值都会保存

如果我在表达式模型中注释掉“set_primary_key“EXP_ID”,它可以工作,但我需要将EXP_ID定义为主键。 在将条目保存到数据库时,是否有方法为主键分配值


如果有人能给我一些提示,我将不胜感激。

表达式
模型中定义的
过滤器保存之前,在
中设置
EXP\u ID

更新:

新增样本:

before_save :set_exp_id
def set_exp_id
  self.exp_id = 5555555
end

我在模型中添加了'before_save:EXP_ID',但它似乎仍然不起作用。谢谢Zabba,我终于发现了我的错误,我错过了方法中的'self'
before_save :set_exp_id
def set_exp_id
  self.exp_id = 5555555
end