2013-03-27 127 views
1

我有一个Rails应用程序,我使用一些全局变量在页面上显示一些基于日期的结果。日期范围变量是全局的。现在的问题是应用程序被多个人同时访问时,全局变量是共享的,并且对于应用程序的每个实例都不是唯一的。Ruby on Rails - 避免全局变量

有人能指出我处理应用程序的每个实例的变量的好方向。

回答

3

应该使用实例变量来代替全局变量(您应该从字面上不使用变量)。在这里,他们是在一个日期范围内寻找订单

class OrdersController < ActionController::Base 
    def index 
    @start_date = params[:start_date] || 30.days.ago 
    @end_date = params[:end_date] || 30.days.ago 
    @orders = Order.where("start_date >= ?", @start_date).where("end_date <= ?", @end_date) 
    end 
end 

注设置:从字面上每一个例子,你会发现网络将使用上面的样式上,而不会使用Ruby的全局变量。