【发布时间】:2014-12-25 14:44:39
【问题描述】:
我正在使用 Ruby on Rails,我想呈现一个网页,该网页利用数据库数据进行宣传。源代码声明如下:
# Model
PROMO_ID = 9
# Controller
@promo_article = Article.find(PROMO_ID)
# View
<%= @promo_article.title %>
<%= @promo_article.content %>
在上面的代码中,我“简单地”查找与数据库记录相关的对象实例(促销实例),然后在视图中呈现它。但是,通过使用上面的代码,我必须确保记录存在(具有id 等于为PROMO_ID 声明的记录)作为必要条件,否则应用程序可能会引发错误。
我遇到了麻烦,因为为了使页面正常工作,该记录必须同时存在于开发和生产数据库中,并且它的引用 PROMO_ID 可能会有所不同,因为在开发中它可能是 9(如以上代码),在生产中它可能是378。
我曾考虑使用模拟对象来实现我的目的,但我想使用数据库记录,因为这样用户可以进一步处理“促销”记录。我正在寻找一个平衡且精益的解决方案。
你有什么建议?我应该如何进行?我应该声明一些id 常量还是使用模拟对象?
【问题讨论】:
-
我以前见过这个问题,似乎。编辑问题以澄清它,不要重新创建它。而且我仍然没有得到“促销内容”的定义。它应该遵循什么逻辑?
-
只有1篇文章可以推广吗?您是否可以将促销文章更改为其他文章?你是怎么选择那个id的?
-
@D-side - 逻辑是促销文章将被用户使用以及用于促销目的,我希望数据库中只有一篇文章记录。
-
@Rustam A. Gasanov - 计划是多篇宣传文章。其他用户应该无法更改该文章,只有管理员可以这样做。我根据数据库中是否存在相关记录选择了
id。
标签: ruby-on-rails ruby database ruby-on-rails-4 promotions