How to deal with factories and attr_accessible
?
My example:
# model
class SomeModel
attr_accessible :name, full_name, other_name
end
#spec
require 'spec_helper'
describe "test" do
it do
create(:some_model, name: "test name", user: User.first) #factory
end
end
#error
ruby(17122,0x12a055000) malloc: *** error for object 0x8: pointer being freed was not allocated
*** set a breakpoint in malloc_error_break to debug
I think the error is because user_id
is not in attr_accessible
attributes.
ok, but anyway if you define your factory with the association, it should assign the record even with attr_protected
factory :some_model do |sm|
sm.name "John"
sm.full_name "John Smith"
sm.other_name "some other"
sm.association :user, :factory => :user
end
and than
describe "test" do
it "should create models with associations" do
Factory(:some_model, name: "test name", user: User.first) #factory
end
end
This seems different from what I got due to attr_accessible. However, you can simply add :user to attr_accessible
难道你不只是在SomeModel
需要它吗?
belongs_to :user
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.