如何在没有验证的情况下使用重新加载?

时间:2016-09-08 12:02:54

标签: ruby-on-rails rspec

我正在为rails应用程序设置基本测试,我想知道重载功能是如何工作的。 Rails生成了基本的crud测试,我根据自己的需要调整它们,但似乎reload函数不起作用。

我创建了一个有效参数的用户,然后要求更改其名称,但似乎没有更新(输出仍为名称:'Toto'而不是名称:'Tata')。

这是代码示例,我只是按照基本的rspec教程,仍然没有得到更新。知道为什么吗?

context "with valid params" do
  let(:new_attributes) { {name: 'Tata'} }

  it "updates the requested creator" do
    creator = Creator.create! valid_attributes
    puts creator.id
    puts new_attributes
    put :update, :id => creator.id, :creator => new_attributes
    creator.reload
    puts creator.name.to_yaml
    expect(creator.attributes).to include( { "name" => 'Tata' } )
    ...

这是匹配的控制器方法

def更新     @creator = Creator.find(params [:id])

authorize @creator
@creator.completed = true
params[:hidden] == 'false' ? @creator.hidden = false : @creator.hidden = true
@creator.update(creator_params)


if params[:user].present?
  if params[:user][:picture].present?
    @creator.picture = params[:user][:picture]
  end
end


if @creator.save
  if iban.nil? || (iban && !iban.valid?)
    flash[:alert] = "Veuillez entrer un IBAN valide"
    redirect_to edit_creator_path(@creator)
  elsif params[:brief_id].present?
    flash[:notice] = "Informations mises à jour"
    redirect_to brief_path(params[:brief_id])
  else
    flash[:notice] = "Informations mises à jour"
    redirect_to creator_path(@creator)
  end
else
  puts @creator.errors.full_messages
  render :edit
end
end

0 个答案:

没有答案