Ruby on Rails - 避免全局变量

时间:2013-03-27 21:32:27

标签: ruby-on-rails ruby-on-rails-3 ruby-on-rails-3.1

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

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

1 个答案:

答案 0 :(得分: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全局变量。