我正在尝试为我的网站设置两个环境,一个在开发服务器上,一个在实时服务器上。我想要在每台服务器上看到DB中可以看到哪些记录。我已经在我的包中创建了一个文件,对于开发,它有@show = "dev"
,而现在它有@show = "live"
我已将它包含在应用程序布局的顶部,因此它位于每个页面上。然后在我的视图中,对于每个数据库调用,我想提出一些这样的条件:
- f = Event.find(:all, :conditions => ["#{@show} = 1"])
但它并没有选择@show
作为变量,只是明确地使用它或忽略它。有没有一种简单的方法可以做到这一点,或者这不符合我的期望?
更新
我设法让它工作,但我必须将文件包含在每个单独的视图中,而不仅仅是在应用程序布局上...不理想,但它是一个解决方案:
= render "includes/dev_live"
- f = Event.find(:all, :conditions => {@show => 1})
答案 0 :(得分:1)
我认为最好将变量更改为符号,即
@show = :dev
@show = :live
然后您的有效记录查询可能变为:
f = Event.find(:all, :conditions => {@show => 1})
答案 1 :(得分:0)
您需要将变量转换为实例变量。在条件下使用它。
你可以试试这个
f = Event.find(:all,:conditions => {@show.to_sym => 1})