【发布时间】:2011-01-19 18:35:43
【问题描述】:
由于 Rail 的生产环境和开发环境之间的差异,我今天遇到了一个可怕的问题。考虑代码:
"select * from subscription_plans where affiliate_id is null or affiliate_id = #{@subscription_plan.affiliate.id rescue 0};"
永远不会有任何 id 为 0 的附属公司,所以如果 @subscription_plan.affiliate 为 nill,我希望查询只返回没有附属公司的订阅计划。在开发环境中工作得很好,因为 nil.id 会引发错误(假设它确实给出了一些关于它应该错误地为 4 的消息)。问题是,我将该代码实时推送到我的生产服务器,并且affiliate_id 为 4 的订阅计划开始出现。在生产中,nil.id 不会抛出错误,而是简单地返回 4。天哪,感谢 rails。
要问这么多,作为 Rails 开发人员,我还应该注意哪些其他事项?特别是,环境之间是否存在其他可能导致问题的差异?
【问题讨论】:
标签: ruby-on-rails activerecord development-environment