Почему я получаю сообщение об ошибке "неопределенная локальная переменная или метод` назначает '"? - PullRequest
0 голосов
/ 11 июня 2010

Я мог бы упустить что-то базовое здесь, но я нахожусь в тупике на этой ошибке:

код модели:

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

код спецификации:

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

Ошибка:

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

Мне кажется, что я упускаю из виду нечто очевидное, но оно невидимо для меня.Есть предложения?

Большое спасибо!* Джейсон 1014 *

Ответы [ 2 ]

1 голос
/ 11 июня 2010

Как сказал нейтрино, assigns доступны только в спецификациях контроллеров / представлений, они бессмысленны в спецификациях модели.

в вашем случае пример может выглядеть как

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
0 голосов
/ 11 июня 2010

Я могу ошибаться, но assigns может быть доступно только в спецификации контроллера.

Также проверьте версию rspec.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...