【发布时间】:2013-09-06 05:00:29
【问题描述】:
你好,在 rails 中使用 rspec 并创建一个有效用户,如下所示
it "should create a valid user" do
@user = User.find_or_create_machine_user("test@dllo.no","test_first", "test_last").should be_an_instance_of User
end
这个测试通过并且工作正常,但是当我包含这个部分时,我得到一个错误
@batch = FactoryGirl.create(:batch, :file_name => "test_file",
:created_by=> @user)
然后说ActiveRecord::AssociationTypeMismatch:
User(#65709220) expected, got String(#19934580)。我尝试使用 created_by_id = @user.id.to_int 这也失败了。
架构
class Batch < ActiveRecord::Base
belongs_to :created_by, :class_name => "User", :foreign_key => :created_by
attr_accessible :created_by, :file_name
谁能告诉我如何克服这个问题? created_by 接受用户
【问题讨论】:
-
如果您可以分享您的整个规范以及您在使用
@user.id.to_int时遇到的具体错误,将会有所帮助。 -
和您的相关模型/模式,以便我们可以看到您正在使用什么。
-
User.find_or_create_machine_user的定义是什么? -
它将创建一个有效的用户 :) 该函数工作正常并返回一个用户对象
标签: ruby-on-rails rspec rspec2