0

我想要有多態關係,以便可以將許多視頻,標籤和用戶發佈到配置文件。配置文件,視頻,標籤和用戶都是獨立的資源。我是否需要一個單獨的模型,並通過與多態關聯來結合某種has_many?我希望配置文件擁有許多視頻,標籤和用戶,但也需要視頻,標籤和用戶擁有多個配置文件。我應該如何設置這些多態模型關聯?

+0

http://stackoverflow.com/questions/617535/ruby-on-rails-polymorphic-association – 2011-04-24 01:46:39

回答

1

爲什麼使用多態性,當has_and_belongs_to_many協會似乎是完美的匹配?

+0

可能的副本,因爲然後我需要三個單獨的連接表? – 2011-04-23 06:19:17

+0

這是正確的,恕我直言,要走這裏,因爲它不那麼複雜,可能更快。當然,你也可以使用多態,然後(如果我理解你的話),你將需要一個連接表('profilable_profile')和'profilable_type'列在你的配置文件表中。你的個人資料模型需要一個'has_and_belongs_to_many:profilables',其他所有人'has_and_belongs_to_many:個人資料'。 – rausch 2011-04-23 07:07:43

+0

我有點困惑,多態如何在這裏工作。你能否提供完整的例子與表格字段,以便我可以確定要做哪一個? – 2011-04-23 15:44:40

0

你不需要這個的多態關聯。相反,你需要has_many和has_many通過關聯。

配置文件有許多影片和視頻有很多的配置文件是(純英文):

Profile has many videos through profile_videos 
Video has many profiles through profile_videos 

ProfileVideo belongs to profile 
ProfileVideo belongs to video 

利用這一點,你現在可以做任何profile.videos拿到專輯或video.profiles得到視頻的配置文件。

+0

但用戶呢?會因爲用戶已經擁有一個配置文件而導致衝突嗎? – 2011-04-24 04:04:36

+0

根本沒有衝突。用戶可以正常使用一個配置文件。 – Spyros 2011-04-24 06:56:20

+0

好的。然後,我需要幾個連接表......所以我決定使用'has_many_polymorphs'插件,但現在我遇到了這個問題:http://stackoverflow.com/questions/5768764/how-to-set-up-這些 - crud-controller-actions-for-has-many-polymorphs-and-an-error你會介意檢查嗎?我可能只是決定去你的解決方案,如果我不能得到這個工作... – 2011-04-24 07:05:03

相關問題