Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails &引用;未定义的“有效”方法&x27&引用;在迈克尔·哈特尔的第10章';s教程_Ruby On Rails_Ruby_Rspec - Fatal编程技术网

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