如何处理利用数据库数据的促销内容?

时间:2014-12-25 14:44:39

标签: ruby-on-rails ruby database ruby-on-rails-4 promotions

我正在使用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常量还是使用模拟对象?

2 个答案:

答案 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