这是由attr_accessible引起的吗?

| 我最近用
attr_accessible
字段更新了我的模型,突然之间有些测试无法正常工作,正如我期望的那样。但是,我有一个类似的规范:
context \"when user buys a game item\" do
  let(:inventory) {@user.inventory << Factory(:inventory)}

  it \"should present an error if the id ...\" do
    GameItem.stub(:find_by_id).and_return(Factory(:game_item))
    @user.inventory.should == 1  # TEST
    post :buy, :id => (game_item.id + 1)
    flash[:error].should == I18n.t(\'error.invalid_post\')
    response.should redirect_to melee_url(\'Weapon\')
  end
end
@user.inventory.should == 1
行只是我现在所做的一张支票。由于某种原因,存货为3英镑。是否由于
<<
操作而发生?我猜这是最有可能的,原因是用户模型的stock_id属性。 我不得不说,“ 0”在我看来通常是一种技巧,我有点不喜欢它,尽管我知道为什么应该使用它。您认为是这种情况吗?如果是这样,我该如何清除该支票?     
已邀请:
let
是懒惰的;除非使用了您要定义的变量,否则它不会调用该块,而且我看不到您在任何地方访问
inventory
。您访问
@user.inventory
,但这不是一回事。 要么丢失
let
定义,然后将其放在
it
块中,要么确保先调用它,然后再确保它执行了应有的功能。     

要回复问题请先登录注册