我有一个有公司的用户,如下
SELECT * FROM dbo.CSVToTable(@UserPreferences)
在我的seeds.rb中,我正在设置它们
class User < ActiveRecord::Base
has_one :company
end
class Company < ActiveRecord::Base
belongs_to :user
end
稍后,在服务上,我正在做
cc = Company.find_by_name("SocialSky, Inc.") || Company.create(
name: "Whatever Inc.",
main_email: "person@example.com"
)
client = User.find_by_email('johndoe@gmail.com') || User.create(
email: 'johndoe@gmail.com',
company: cc
)
它返回零
为什么?我做错了什么?
谢谢!
答案 0 :(得分:0)
如果您使用的是rails 3,则必须将company_id添加到attr_accessible。
"InvalidParam"
然后在种子文件中,您应首先验证公司是否已创建。
class User < ActiveRecord::Base
has_one :company
attr_accessible : email
end
以后
cc = Company.find_by_name("SocialSky, Inc.") || Company.create(
name: "Whatever Inc.",
main_email: "person@example.com")
p cc
答案 1 :(得分:0)
您是否尝试过使用first_or_create
?
cc = Company.where(name: "SocialSky, Inc.").first_or_create |company|
company.name = "Whatever Inc."
compnay.main_email = "person@example.com"
)
client = User.where(email: 'johndoe@gmail.com').first_or_create |user|
user.email: 'johndoe@gmail.com'
user.company: cc
)
http://apidock.com/rails/ActiveRecord/Relation/first_or_create