ruby on rails - Factory Girl:未初始化的常量



我有一个工厂,如:

FactoryGirl.define do
  factory :page do
    title 'Fake Title For Page'
  end
end

和一个测试:

describe "LandingPages" do
    it "should load the landing page with the correct data" do
        page = FactoryGirl.create(:page)
        visit page_path(page)
    end
end
我spec_helper

。rb:包含

require 'factory_girl_rails' 

但是我一直得到:

LandingPages should load the landing page with the correct data
     Failure/Error: page = FactoryGirl.create(:page)
     NameError:
       uninitialized constant Page
     # ./spec/features/landing_pages_spec.rb:5:in `block (2 levels) in <top (required)>'

这是一个新项目,所以我不相信测试是真正的问题。我想可能是设置不正确。有什么想法尝试和/或在哪里寻找解决这个问题?

我平淡无奇的页面。rb文件:

class Pages < ActiveRecord::Base
  # attr_accessible :title, :body
end

从文件名来看,模型实际上被命名为LandingPage。工厂试图根据您给它的名称猜测您的类名。所以:page变成了page

你可以更改工厂的名称,或者你可以添加一个显式的类选项:

FactoryGirl.define do
  factory :landing_page do
    title 'Fake Title For Page'
  end
end

FactoryGirl.define do
  factory :page, :class => LandingPage do
    title 'Fake Title For Page'
  end
end

看起来您的模型名称是复数:Pages。这个应该是单数,Page。您还需要将文件重命名为app/models/page.rb

相关内容

  • 没有找到相关文章

最新更新