我正在使用Ruby on Rails,我想渲染一个利用数据库数据进行宣传的网页。源代码如下所示:
# Model
PROMO_ID = 9
# Controller
@promo_article = Article.find(PROMO_ID)
# View
<%= @promo_article.title %>
<%= @promo_article.content %>
在上面的代码I&#34;简单地说&#34;查找与数据库记录相关的对象实例(促销实例),然后在视图中呈现它。但是,通过使用上面的代码,我必须确保记录存在(id
等于PROMO_ID
所述的记录)作为必要条件,否则应用程序可能会引发错误。
我遇到了麻烦,因为为了使页面正常工作,记录必须同时存在于开发和生产数据库中,其引用PROMO_ID
可能会有所不同,因为在开发过程中它可能是9
(如上面的代码所示)和生产中可能是378
。
我想过为我的目的使用模拟对象,但我想使用数据库记录,因为这样的方式促销&#34;记录可以由用户进一步处理。我正在寻找一个平衡而精益的解决方案。
你有什么建议?我该怎么办?我应该说明一些id
常量还是使用模拟对象?
答案 0 :(得分:1)
尝试使用不如find
严格的内容。
# in model
def self.december_promo
find_by(title: 'December 2014 Promo') }
end
# in controller
@promo_article = Article.december_promo
如果找不到记录, find_by
将为零。
答案 1 :(得分:0)
简单使用案例表达
case Rails.env
when "development"
PROMO_ID = 9
when "production"
PROMO_ID = 378
end