我有一个问题我在我的本地环境中开发了我的应用程序,一切都按预期工作,但在我部署到heroku后,某些东西无法正常工作。
我有2个型号PurchasingGroup和GroupGoal
采购组有很多小组目标,当我为采购组创建小组目标时,我可以在控制台中检查这样的
PurchasingGroup.last.group_goals
结果就是这个
[#<GroupGoal id: 130, created_at: "2015-03-25 17:09:08", updated_at: "2015-03-25 17:10:37", other attributes ommitted>,
#<GroupGoal id: 131, created_at: "2015-03-25 17:09:08", updated_at: "2015-03-25 17:18:11", other attributtes ommitted]>
这是正确的,它在heroku和我的本地也是如此,当组目标更新时,记录的顺序在heroku中更改(仅在heroku中),因此结果就像这样
[#<GroupGoal id: 131, created_at: "2015-03-25 17:09:08", updated_at: "2015-03-25 17:10:37", other attributes ommitted>,
#<GroupGoal id: 130, created_at: "2015-03-25 17:09:08", updated_at: "2015-03-25 17:18:11", other attributtes ommitted]>
所以,如果您现在看到订单已更改,这会破坏我的应用程序的许多功能,所以我必须像这样指定EVERYTIME
PurchasingGroup.last.group_goals.order(:id)
我必须通过以下方式指定order:id才能使其在heroku中运行。知道为什么吗?
答案 0 :(得分:2)
如果您依赖于有序结果,则始终使用.order
指定订单
答案 1 :(得分:2)
假设您正在使用postgres w / Heroku,postgres按最近更新的排序。您必须覆盖模型中的默认订单,如has_many: group_goals, :order => "id DESC"
或您拥有的