【问题标题】:Problem with date based relationship in RailsRails中基于日期的关系问题
【发布时间】:2011-04-13 06:57:43
【问题描述】:

我使用基于日期的条件在 Rails 中建立了一对一的关系,这意味着只应返回今天的订单。

  has_one :todays_order, :through => :patient_orders, :source => :daily_order ,:conditions => ["order_for_date = ?", Date.current]

假设昨天有今天的订单,但今天应该没有今天的订单,因为不存在日期等于今天的订单。

只有当我调用控制器并获得包含该数据的 json 响应时才会发生这种情况。 如果我尝试在控制台中重现它,它的行为正确并给我nil 作为今天订单的价值。 我的环境是发展。

另一个奇怪的事情是,在服务器重新启动后,今天的订单将正确返回,所以似乎有类似缓存活动的东西。会这样吗?

【问题讨论】:

    标签: ruby-on-rails ruby activerecord date relationship


    【解决方案1】:

    最好的方法是load your association query passing it a true value:

    # Example
    @course_orders.todays_order(true)
    

    或者您可以尝试将查询包装在这种块中:

    ActiveRecord::Base.uncached do
      your query
    end
    

    或强制清除缓存:

    ActiveRecord::Base.query_cache.clear_query_cache
    

    【讨论】:

    • 当我渲染 json 时我该怎么做?例如respond_with(@course_orders, :include => :orders)
    • 问题是生成@course_orders 的查询应该类似于:@course_orders.todays_order(true)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-20
    • 2014-05-09
    相关资源
    最近更新 更多