2015-07-10 116 views
0

我有了一個公司的用戶,如下ActiveRecord鏈接的實體沒有被保存?

class User < ActiveRecord::Base 
    has_one :company 
end 

class Company < ActiveRecord::Base 
    belongs_to :user 
end 
在我seeds.rb

,我後來將它們設置這樣

cc = Company.find_by_name("SocialSky, Inc.") || Company.create(
    name: "Whatever Inc.", 
    main_email: "[email protected]" 
) 

client = User.find_by_email('[email protected]') || User.create( 
    email: '[email protected]', 
    company: cc 
) 

,服務上,我在做

user_company = User.find_by_email('[email protected]').company 

而且它返回nil

這是爲什麼?我究竟做錯了什麼?

謝謝!

回答

0

如果您使用的是rails 3,則必須將company_id添加到attr_accessible。

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: "[email protected]") 

p cc 

後來

client = User.find_by_email('[email protected]') 
if client.blank? 
    u = User.new(email: '[email protected]') 
    u.company_id = cc.id 
    u.save 
end 
+0

一兩件事請attr_accessible添加姓名和main_email到公司以及 – Athar

相關問題