我第一次使用Rails組合鍵,即使我已經閱讀了文檔,但我仍然不確定如何正確設置模型。Rails組合鍵 - 設置模型和關聯
活動可以由提供者安排。我想要一個連接表,將activity_id
和provider_id
作爲唯一的組合鍵,以便我可以將它與其他(價格)關聯起來。創建新計劃時需要生成組合。提供者不一定直接擁有自己的活動。
我已經得到了這個我的複合鍵,因爲它是自己的模型。這是正確的嗎?
class ScheduledActivity < ActiveRecord::Base
self.primary_keys = :provider_id, :activity_id
belongs_to :activity
belongs_to :provider
has_many :schedules, :foreign_key => [:provider_id, :activity_id]
has_many :prices, :foreign_key => [:provider_id, :activity_id]
end
這爲DB遷移:
class CreateJoinTableScheduledActivities < ActiveRecord::Migration
def change
create_join_table :providers, :activities, table_name: :scheduled_activities do |t|
t.index [:provider_id, :activity_id]
end
end
end
我如何再拿到聯結表中新條目,在創建時間表?我是否只在該模型上放置了belongs_to :scheduled_activity
- 即Schedule表上沒有提供者和活動ID,並且是否要編寫單獨的掛鉤以創建新的組合鍵?
(另 - 這個正確的使用情況下,是擺在首位組合鍵?)
提前感謝!