Ruby on rails &引用;未定义的“有效”方法&x27&引用;在迈克尔·哈特尔的第10章';s教程
我在Ruby on rails &引用;未定义的“有效”方法&x27&引用;在迈克尔·哈特尔的第10章';s教程,ruby-on-rails,ruby,rspec,Ruby On Rails,Ruby,Rspec,我在microsofst\u spec.rb文件中的代码出现以下3个错误。我该如何修理它们?我想我完全遵循了教程,但不同版本的Rails可能会有问题 Ruby版本:1.9.2p320 Rails版本:3.2.13 Rspec:2.11.1 电脑:Macbook pro OS X Mountain Lion 错误 您收到的错误消息与共享的等级库文件不匹配。错误消息显示User.should..,而您的规范有一个隐式主题。该错误反映您在类用户上间接调用valid?,而不是预期的@micropost而
microsofst\u spec
.rb文件中的代码出现以下3个错误。我该如何修理它们?我想我完全遵循了教程,但不同版本的Rails可能会有问题
Ruby版本:1.9.2p320
Rails版本:3.2.13
Rspec:2.11.1
电脑:Macbook pro OS X Mountain Lion
错误
您收到的错误消息与共享的等级库文件不匹配。错误消息显示
User.should..
,而您的规范有一个隐式主题。该错误反映您在类用户
上间接调用valid?
,而不是预期的@micropost
而且,@micropost=“a”*141
等不正确;您应该修改Micropost
的属性,而不是设置@Micropost
的值。但出于某种原因,您的测试主题是错误的。也许您选择了user
而不是user
?@DaveNewton好的,我可以发布其他文件来解决这个问题吗?谢谢你的邀请response@user2469211修复@micropost=…
问题,编辑您的问题以反映当前内容。至少发布Ruby、Rails和RSpec的版本。实际上,教程上说的是@microsop.content=“a”*141
。如果您搜索您拥有的文本,它不会出现。好的,我是否可以发布其他文件来帮助解决问题?您已经发布了相关文件(即micropost_spec.rb)。我想说的是,您得到的结果反映了执行文件的其他版本。将错误消息中显示的行号与文件的行号进行比较。
1) Micropost when user_id is not present
Failure/Error: it { User.should_not be_valid }
NoMethodError:
undefined method `valid?' for #
# ./spec/models/micropost_spec.rb:19:in `block (3 levels) in '
2) Micropost with blank content
Failure/Error: it { User.should_not be_valid}
NoMethodError:
undefined method `valid?' for #
# ./spec/models/micropost_spec.rb:24:in `block (3 levels) in '
3) Micropost when content is too long
Failure/Error: it { User.should_not be_valid }
NoMethodError:
undefined method `valid?' for #
# ./spec/models/micropost_spec.rb:29:in `block (3 levels) in '
require 'spec_helper'
describe Micropost do
let(:user) { FactoryGirl.create(:user) }
before { @micropost = user.microposts.build(content: "Lorem ipsum") }
subject { @micropost }
it { should respond_to(:content) }
it { should respond_to(:user_id) }
it { should respond_to(:user) }
its(:user) { should eq user }
it { should be_valid }
describe "when user_id is not present" do
before { @micropost.user_id = nil }
it { should_not be_valid }
end
describe "with blank content" do
before { @micropost = " "}
it { should_not be_valid}
end
describe "when content is too long" do
before { @micropost = "a" * 141 }
it { should_not be_valid }
end
end