gpt4 book ai didi

ruby - 如何将 Mongoid foreign_key 保存为整数或保持父模型具有整数 ID

转载 作者:数据小太阳 更新时间:2023-10-29 06:42:01 24 4
gpt4 key购买 nike

情况是这样的。

user embed_one profile
profile belongs_to city

我用

填充了一个城市表
id as Integer
name as String

现在我在做user.update_attributes(:profile_attributes{:city_id=>"5"})模拟浏览器表单提交。然后我检查 user.profile 我看到 city_id 存储为字符串。这使我的 user.profile.city 变为 nil。

我想知道在这里做什么是正确的。我应该让我的城市 ID 是字符串还是 BSON 对象?或者我应该尝试拦截 update_attributes 以使 mongoid 将 city_id 存储为整数?我使用 Integer 作为城市 id 的原因是因为我认为通过 Integer 搜索比通过字符串搜索更快。而且我还有州和城市表,我想以可预测的方式匹配 ID,所以我不想使用 BSON 随 secret 钥。

最佳答案

当然,如果你使用 Mongoid,正确的方法是使用 BSON 对象作为 id。但是如果你绝对需要使用整数作为城市 id,你可以用这样的代码模拟 belongs_to

class Profile
def city
City.where(:id => self.city_id).last
end

def city=(new_city)
self.city_id = new_city.id
end
end

关于ruby - 如何将 Mongoid foreign_key 保存为整数或保持父模型具有整数 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9084368/

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