gpt4 book ai didi

ruby-on-rails - RSpec 未定义的局部变量或方法

转载 作者:行者123 更新时间:2023-11-28 21:29:40 26 4
gpt4 key购买 nike

在 spec/controllers/profiles_controller_spec.rb 中出现奇怪的错误:未定义的局部变量或方法“profile”

粘贴在 Controller 的相关部分:

require 'rails_helper'
require 'factory_girl'

describe ProfilesController, :type => :controller do
login_user #this is defined elsewhere, not an issue
describe "PUT update" do
before(:each) do
@profile = FactoryGirl.create(:profile)
end
context "valid attributes" do
it "located the requested @profile" do
put :update, id: @profile, profile: FactoryGirl.attributes_for(:profile)
assigns(:profile).should eq(@profile)
end
end
end
end

最佳答案

我的猜测是您的规范或工厂没有问题。问题出在您正在测试的 Controller 上。

你看到的异常

1) ProfilesController PUT #update valid attributes located the requested @profile
Failure/Error: put :update, id: @profile, profile: FactoryGirl.attributes_for(:profile)
NameError:
undefined local variable or method `profile' for #<ProfilesController:0x007fae343cfe08>

告诉您您的 ProfilesController 具有未定义的局部变量或方法 profile

在你的 Controller 中,你有这一行

if @profile.update(profile)

这很可能导致错误。也许您需要将 update(profile) 更改为 update(profile_params)?在没有看到整个 Controller 的情况下很难说清楚,但这会遵循一个共同的模式。我猜你有一个方法 profile_params 返回过滤后的参数。

关于ruby-on-rails - RSpec 未定义的局部变量或方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27495358/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com