Rails"未知命令"引发ArgumentError

时间:2015-04-12 22:48:34

标签: ruby-on-rails ruby railstutorial.org argument-error

我正在研究Michael Hartl rails教程。运行我的测试时,我收到以下错误:

Error:
UserTest#test_associated_microposts_should_be_destroyed:
ArgumentError: unknown command 'a'
test/models/user_test.rb:73:in 'test'
test/models/user_test.rb:73: in 'block in <class:UserTest>'

“test / models / user_test.rb”如下:

test "associated microposts should be destroyed" do
@user.save
@user.microposts.create!(content: "Lorem ipsum")
assert_difference 'Micropost.count', -1 do
@user.destroy
end

测试很简单,只是为了测试我的模型中的以下行(user.rb)

has_many :microposts, dependent: :destroy

如果我评论这句话如下:

has_many :microposts#, dependent: :destroy

我,正如所料,得到

Failure: [...] "Micropost.count" didn't change by -1. Expected:38 Actual 39.

如果我取消注释“dependent :: destroy”语句,我会收到此“未知命令”错误。任何人都可以就如何最有可能生成此错误提供一些指导,在rails(不包括rails控制台)的上下文中是什么“命令”以及首先尝试解决它的位置(模型?控制器?)。感谢。

2 个答案:

答案 0 :(得分:2)

你的assert_difference电话中有一个拼写错误。

assert_difference 'Micropost.count" ...

请注意开头的单引号和结束的双引号。

答案 1 :(得分:0)

我刚才遇到了同样的问题而且有这个问题;

int4的顶部有此设置

micropost_test.rb

已经创建了一个帖子,所以当用户在测试中保存了另一个帖子时,那么该用户实际上被删除了2个帖子。所以我们期望的应该是-2差异。