views:

37

answers:

2

I might be missing something basic here, but I'm stumped on this error:

model code:

class CachedStat < ActiveRecord::Base
    def self.create_stats_days_ago(days_ago, human_id)
    d = Date.today - days_ago.day
    @prs = PageRequest.find(:all, :conditions => [ "owner_type = 'Human' and owner_id = ? and created_at = ?", human_id, d] )
  end
end

spec code:

it "should create stats for the specified number of days in the past" do
  CachedStat.create_stats_days_ago(1, Human.first.id)
  assigns[:prs].should eql("foo")
end

The error is:

undefined local variable or method `assigns' for #<Spec::Rails::Example::ModelExampleGroup::Subclass_1:0x2fbac28>

I feel like I'm overlooking something obvious but it's invisible to me. Any suggestions?

Thanks very much! -Jason

A: 

I could be wrong here, but assigns might be available only in controller specs.

Also, check your rspec version.

neutrino
You're right about 'assigns'
zed_0xff
A: 

as neutrino said, assigns are only available in controllers/views specs, they're meaningless in a Model specs.

in your case example can look like

it "should create stats for the specified number of days in the past" do
  CachedStat.create_stats_days_ago(1, Human.first.id).should eql("foo")
end
zed_0xff
Thanks for the assist zed!
Jason