2012-07-12 62 views
0

軌3.2.2 mysql2爲什麼屬於關聯返回一個Fixnum對象

我有以下關係,

class TalkingCase < ActiveRecord::Base 

     belongs_to :medical_case 

end 

class MedicalCase < ActiveRecord::Base 

    has_many :talking_cases 
end 

在控制檯:

a=TalkingCase.first 

a.medical_case 

有時返回0有時它工作正常。

我可以使用MedicalCase.find(xx)來獲取medical_case對象。

有人遇到這個問題嗎?

下面是將控制檯輸出:

加載開發環境(滑軌3.2.2)

[1] pry(main)> a=TalkingCase.first 

    TalkingCase Load (0.4ms) SELECT `talking_cases`.* FROM `talking_cases` LIMIT 1 
=> #<TalkingCase id: 15, user_id: 231, talking_id: 7, nickname: "史麗", medical_case_id: 42, medical_case_name: "糖尿病腎病之一", created_at: "2012-06-21 03:38:36", updated_at: "2012-06-21 03:38:36">(this is ok) 

[2] pry(main)> a.medical_case 

    MedicalCase Load (0.5ms) SELECT `medical_cases`.* FROM `medical_cases` WHERE `medical_cases`.`id` = 42 ORDER BY id desc LIMIT 1 

=> 1 

(這是陌生人,我需要的medical_case對象)在架構

表如下:

create_table "talking_cases", :force => true do |t| 
    t.integer "user_id" 
    t.integer "talking_id" 
    t.string "nickname" 
    t.integer "medical_case_id" 
    t.string "medical_case_name" 
    t.datetime "created_at",  :null => false 
    t.datetime "updated_at",  :null => false 
end 

create_table "medical_cases", :force => true do |t| 
    t.string "title",          :null => false 
    t.string "bianhao",         :null => false 
    t.integer "age" 
    t.string "gender",   :limit => 1   
    t.integer "user_id",         :null => false 
    t.integer "is_shared",  :limit => 1 
    t.integer "is_elite",  :limit => 1 
    t.integer "is_recommend", :limit => 1 
    t.string "share_reason"           
    t.string "other_cate_des"           
    t.string "keywords" 
    t.integer "comments_count",    :default => 0 
    t.integer "click_count",     :default => 0 
    t.integer "tap",       :default => 0 
    t.datetime "created_at",         :null => false 
    t.datetime "updated_at",         :null => false 
    t.integer "fans_count" 
end 
+0

Deefour,是正確的校驗這個http://guides.rubyonrails.org/association_basics.html – PriteshJ 2012-07-12 04:45:43

回答

1

請指定關聯的類型離子從MedicalCase模型過於

class MedicalCase < ActiveRecord::Base 
    has_one :talking_case 
end 
+0

外鍵「medical_case_id」是表talking_cases,如果我使用HAS_ONE協會,我需要將表「medical_case_id」添加到表medical_cases,這不是我想要的!謝謝! – 2012-07-12 04:42:39

+0

@ user1302658,你需要有一個foriegn鍵,你也需要告訴rails它們之間的關聯類型。 – PriteshJ 2012-07-12 04:51:57

+0

在對象MedicalCase中,我在表chat_cases中添加了「has_many:talking_cases」和外鍵「medical_case_id」。這是has_many和belongs_to association.But我試着在控制檯中,當我使用「TalkingCase.first.medical_case」仍然返回1。 – 2012-07-12 05:01:22

相關問題