gpt4 book ai didi

ruby-on-rails - rails : ActiveResource - Can I set the ID explicitly?

转载 作者:行者123 更新时间:2023-12-04 15:05:42 25 4
gpt4 key购买 nike

我在 Rails 中使用 ActiveResource 通过 REST 管理单独数据库中的实体。

我一直在尝试明确管理远程资源的 ID,对于当前情况,最简单的方法是重新使用本地资源的 ID,而不是维护不同的字段。

不幸的是,我无法将其用作 new? 的代码。在 ActiveResource::Base

  def new?
id.nil?
end

save
 def save
new? ? create : update
end

因此,根据定义,不可能设置资源的 ID 并将其保存为新资源。
createupdate是 protected 方法,所以如果我破解了 ActiveResource::Base 代码,也许可以让它工作,但我不愿意这样做。

有没有正确的方法来做到这一点?或者我想做的事情很糟糕,我不应该这样做?

最佳答案

在新的 rails(测试 2.3.2)中可以设置 id,因为保存逻辑已经改变了一点(现在记录有 bool 字段 @newrecord 来消除那个 id.nil?)。

record = Model.new
record.id = 123
record.save!

关于ruby-on-rails - rails : ActiveResource - Can I set the ID explicitly?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/602162/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com