我一直在尋找其他問題/答案,但找不到任何有幫助的東西。我有users
和events
和static_events
。我現在想介紹一個schedule
爲users
保存兩種不同類型的「事件」has_many:通過混淆
我越來越掛在組織關聯。具體將events
和static_events
與特定的:foreign_key
關聯以創建schedule
。這是我的第一個應用程序,所以事情還是有點新的。一如既往,任何幫助將不勝感激。以下是我迄今爲止:
型號:
class User < ActiveRecord::Base
has_many :events, :through => :schedules, :source => "followed_id"
has_many :static_events, :through => :schedules, :source => "followed_id"
end
class Event < ActiveRecord::Base
belongs_to :users
belongs_to :schedules, :foreign_key => "followed_id"
end
class StaticEvent < ActiveRecord::Base
belongs_to :users
belongs_to :schedules, :foreign_key => "followed_id"
end
class Schedule < ActiveRecord::Base
belongs_to :users
has_many :events
has_many :static_events
end
數據架構:
create_table "schedules",
t.integer "followed_id"
end
create_table "users",
t.string "name"
t.string "email"
t.datetime "created_at"
t.datetime "updated_at"
end
create_table "events",
t.string "content"
t.integer "user_id"
t.datetime "created_at"
t.datetime "updated_at"
#several more fields left out for brevity
end
create_table "static_events",
t.string "content"
t.integer "user_id"
t.datetime "created_at"
t.datetime "updated_at"
#several more fields left out for brevity
end
我要對這個以最有效的方式?
約旦,我的錯誤 - 我更新了代碼,他們確實有幾個不同的領域。這就是說,我認爲單表繼承仍然是一條可行的路。除此之外,在':foreign_key'上用''用戶'加入'Event'和'StaticEvent'確定並且不會引起任何問題? – Alekx 2012-01-27 03:55:57
'Schedule'的用途是什麼?這是否意味着它是一個獨立的類,或者它僅僅是用戶和他們保存的事件之間的映射(在這種情況下,「Scheduling」或「Attending」可能是更好的名稱)。 – 2012-01-27 04:56:50
好的電話,'出席'是一個更好的名字。它意味着用戶和他們保存的事件之間的映射。但是在思考之後,我需要將'Event'和'StaticEvent'作爲獨立的模型,因爲它們會有太多不同的信息。還有可能需要創建其他模型並添加到「參加」。鑑於此,我的原始代碼/邏輯是否仍然適用,將'Schedule'的名稱更改爲'Attending'? – Alekx 2012-01-27 16:22:43