Rails在更新记录上的primary_key问题上获取

时间:2017-11-18 05:55:13

标签: ruby-on-rails

问候伙伴们,

我在表格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

1 个答案:

答案 0 :(得分:1)

这在rails 5.1.0中已得到解决。请考虑升级到5.1.x.