Ruby on rails 如何使用Mongoid修复此RSpec错误?“无法将符号转换为整数”
我正在为我的控制器编写测试。它们非常简单,但这个错误一直在出现。这是我的控制器Ruby on rails 如何使用Mongoid修复此RSpec错误?“无法将符号转换为整数”,ruby-on-rails,ruby,rspec,devise,mongoid,Ruby On Rails,Ruby,Rspec,Devise,Mongoid,我正在为我的控制器编写测试。它们非常简单,但这个错误一直在出现。这是我的控制器 def show id=params[:id] @user=User.find(:first,id) end 我的测试 before(:each) do @user = Fabricate(:user) sign_in @user end ... it "should be successful" do get "show", :id => @u
def show
id=params[:id]
@user=User.find(:first,id)
end
我的测试
before(:each) do
@user = Fabricate(:user)
sign_in @user
end
...
it "should be successful" do
get "show", :id => @user
response.should be_success
end
以及错误消息
1) UsersController GET 'show' for the logged in user should be successful
Failure/Error: get "show", :id => @user
TypeError:
can't convert Symbol into Integer
# ./app/controllers/users_controller.rb:6:in `show'
# ./spec/controllers/users_controller_spec.rb:31:in `block (4 levels) in <top (required)>'
获取显示:id=>@user
您这里的问题可能与@user有关,从您发布的示例来看,它在您的规范上下文中的值并不清楚。您应该传递一个整数记录id作为的值,例如:id=>1。您的控制器就是错误所在。find方法仅自动将其在代码中等效的第一个结果返回给用户。其中:id=>params[:id]。first。尝试删除:first符号,只需传入id User。findid执行此操作时,我遇到另一个错误:BSON::InvalidDocument:无法将类User的对象序列化到BSON中。我使用的是Mongoid,但API与ActiveRecord大致相同。