我有一个comic_books
有很多问题的表,每个问题都有一个author and illustrator
,当前仅存储为字符串。使用has_many:through
漫画书来解决问题效果很好,现在我正在尝试弄清楚如何为作者和插画家添加关联。
问题是作者和插画家有时是同一个人。如果您单击插画家,我想查看他/她所写或插图的具体问题。如果我设置一个has_one belongs_to association
我只会得到插图或作者的卷结果,但我想要来自同一个“创作者”。
所以这导致我尝试了一张creator
桌子,但我不知道如何放置关联。我想要一个在作家和插画家中存储name
, 和 a的创建者表。creator_id
然后我想打电话
issue.illustrator.first_or_create!('bob smith')
但这是不对的。我不想要独立的插画家和作家表,因为他们每个人都有相同的名字。我需要进一步抽象出来,但我似乎无法弄清楚。
我想如果不存在,我想创建一个新的创建者记录并存储creator_id
到 illustrator 表中,以便我可以引用 issue.illustrator.name,但名称值实际上是在创建者表中......
有没有更好的方法来完成整个任务?