问候伙伴们,
我在表格ID(primary_key)上使用getter有问题,我遇到的更新记录没有按预期工作,我是ruby的新手,我已经一直在寻找相同的问题,但找不到一个。
我在MainController中创建了一个方法
def do_the_hash_thingy(id)
return id + 10
end
def do_the_unhash_thingy(id)
return id.to_i - 10
end
这是模型
def id
if self[:id].present?
MainController.new.do_the_hash_thingy(self[:id])
end
end
假设id是4,在哈希处理之后,它应该是14,并且在unhash进程之后返回到4
SampleTable.find(MainController.new.do_the_unhash_thingy(params[:id]))
SampleTable.column1 = 'new data'
SampleTable.save
记录结果
UPDATE `sample_table` SET `column1` = 'new data', `updated_at` = '2017-11-18 00:00:00' WHERE `sample_table`.`id` = 14
奇怪的是它仍然在id 14而不是4
上更新我已经检查了hash和unhash的值是否按预期返回
Ruby版本:2.4.1
Rails版本:5.0.6
答案 0 :(得分:1)
这在rails 5.1.0中已得到解决。请考虑升级到5.1.x.