我正在为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