【问题标题】:Hartl tutorial chapter 9.3.3 pagination (FactoryGirl::AttributeDefinitionError)Hartl教程第9.3.3章分页(FactoryGirl::AttributeDefinitionError)
【发布时间】:2015-01-27 17:38:41
【问题描述】:

我正在研究 Michael Hartl 的 ruby​​ on rails 教程中关于分页的第 9.3.3 部分,我卡住了:运行 rspec 测试我收到一条错误消息,指出 gem FactoryGirl 有问题。你认为可能是什么问题?

/Users/smi/.rvm/gems/ruby-2.0.0-p594/gems/factory_girl-4.5.0/lib/factory_girl/definition_proxy.rb:43:in `add_attribute': Both value and block given (FactoryGirl::AttributeDefinitionError)
from /Users/smi/.rvm/gems/ruby-2.0.0-p594/gems/factory_girl-4.5.0/lib/factory_girl/definition_proxy.rb:102:in `method_missing'
from /Users/smi/projects/sample_app/spec/factories.rb:3:in `block (2 levels) in <top (required)>'
from /Users/smi/.rvm/gems/ruby-2.0.0-p594/gems/factory_girl-4.5.0/lib/factory_girl/syntax/default.rb:18:in `instance_eval'
from /Users/smi/.rvm/gems/ruby-2.0.0-p594/gems/factory_girl-4.5.0/lib/factory_girl/syntax/default.rb:18:in `factory'
from /Users/smi/projects/sample_app/spec/factories.rb:2:in `block in <top (required)>'
from /Users/smi/.rvm/gems/ruby-2.0.0-p594/gems/factory_girl-4.5.0/lib/factory_girl/syntax/default.rb:49:in `instance_eval'
from /Users/smi/.rvm/gems/ruby-2.0.0-p594/gems/factory_girl-4.5.0/lib/factory_girl/syntax/default.rb:49:in `run'
from /Users/smi/.rvm/gems/ruby-2.0.0-p594/gems/factory_girl-4.5.0/lib/factory_girl/syntax/default.rb:7:in `define'
from /Users/smi/projects/sample_app/spec/factories.rb:1:in `<top (required)>'
from /Users/smi/.rvm/ge......................

users_pages_spec.rb:

 describe "pagination" do

  before(:all) { 30.times { FactoryGirl.create(:user) } }
  after(:all)  { User.delete_all }

  it { should have_selector('div.pagination') }

  it "should list each user" do
    User.paginate(page: 1).each do |user|
      expect(page).to have_selector('li', text: user.name)
    end
  end
end

factories.rb:

    FactoryGirl.define do
  factory :user do
    sequense(:name)   { |n| "Person #{n}" }
    sequense(:email)  { |n| "person_#{n}@example.com" }
    password "foobar"
    password_confirmation "foobar"
  end
end

【问题讨论】:

    标签: ruby-on-rails ruby rspec pagination railstutorial.org


    【解决方案1】:

    我找到了答案! factory.rb 中的方法“sequence”写错了。现在所有测试都是绿色的。

    【讨论】:

    • 犯了同样的错误,输入错误的单词trait。错误信息非常无用。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-09
    相关资源
    最近更新 更多