我在 Rails 中使用 ActiveResource 通过 REST 管理单独数据库中的实体。
我一直在尝试显式管理远程资源的 ID,就当前情况而言,最简单的方法是重新使用本地资源的 ID,而不是维护不同的字段。
不幸的是,我无法使其正常工作,因为new?
in的代码ActiveResource::Base
是
def new?
id.nil?
end
并且save
是
def save
new? ? create : update
end
因此,根据定义,不可能设置资源的 ID 并将其保存为新资源。
create
并且update
是受保护的方法,所以如果我破解了 ActiveResource::Base 代码,也许这会让它工作,但我不愿意这样做。
有这样做的正确方法吗?还是我想做的事情很糟糕,我不应该这样做?