【发布时间】:2015-01-21 10:51:42
【问题描述】:
我对视图中放置的变量存在问题,即值未更新。
除了@last_leads 之外,此视图中使用的所有值都保持相同的值,直到我重新生成缓存(在我的情况下,这意味着使用 capistrano 进行部署)。
@last_leads 正在正确刷新。
视图中没有cache标签。
有什么想法吗?
控制器:
class SomeClass
def show
lead_scope = current_provider.leads
@today_leads = lead_scope.today
@yesterday_leads = lead_scope.yesterday
@earlier_this_week_leads = lead_scope.earlier_this_week
@current_week_leads = lead_scope.current_week
@previous_week_leads = lead_scope.previous_week
@last_leads = lead_scope.last_ordered
end
end
查看:
%h1 Dashboard
.box.emphasised.clearfix
.number-info.width-100
.value= @today_leads.count
Today
.number-info.width-100
.value= @yesterday_leads.count
Yesterday
.number-info.width-100
.value= @current_week_leads.count
This week
.number-info.width-100
.value= @previous_week_leads.count
Previous week
.box.emphasised.clearfix
%table.generic-table.coloured.leads-list
-@last_leads.each do |lead|
%tr
%td.centered= lead.created_at.to_s :short_db
%td.cell-width-20= lead.service_choice.service.name
%td.centered.cell-width-20= lead.phone
范围如下:
scope :today, where("leads.created_at > ?", Time.now.beginning_of_day)
scope :yesterday, where("leads.created_at between ? AND ?", 1.day.ago.beginning_of_day, Time.now.beginning_of_day)
scope :earlier_this_week, where("leads.updated_at between ? AND ?", Time.now.beginning_of_week, 1.day.ago.beginning_of_day)
scope :current_week, where("leads.created_at between ? AND ?", Time.now.beginning_of_week, Time.now.end_of_week)
scope :previous_week, where("leads.created_at between ? AND ?", 1.week.ago.beginning_of_week, 1.week.ago.end_of_week)
scope :last_ordered, order("leads.created_at DESC").limit(5)
【问题讨论】:
-
您确定某些未知范围不会干扰获取结果吗?
-
我已经添加了范围,应该没问题。
-
你使用的是什么版本的 ruby 和 rails?
-
导轨:3.2.8,红宝石:1.9.3-p484
-
请将最后一行更改为" scope :last_ordered, lambda{order("leads.created_at DESC").limit(5)"} "
标签: ruby-on-rails ruby-on-rails-3 haml