gpt4 book ai didi

ruby - 我不明白如何表达三个单独表之间的关系

转载 作者:数据小太阳 更新时间:2023-10-29 07:49:09 26 4
gpt4 key购买 nike

给定以下 ActiveRecord 中的表:

  • 作者
  • 网站
  • 文章

我不知道如何表达作者根据出版物获得不同的报酬,但为同一出版物工作的作者有不同的费率:

  • 约翰以 300 美元的价格在 Foo 上发表了一篇文章
  • 约翰以 350 美元的价格在 Bar 上发表了一篇文章
  • 约翰以 400 美元的价格在 Baz 上发表了一篇文章
  • 迪克以 250 美元的价格在 Foo 上发表了一篇文章
  • 迪克以 400 美元的价格在 Bar 上发表了一篇文章

等等

我想描述什么样的关系?

目前我有一个包含作者_id、站点_id 和数量列的“费率”表。给定 publication.id 和 author.id,我用

得出文章的成本
cost = Rate.find(:first, :conditions => ["author_id = ? and site_id = ?", author.id, site.id]).rate

这行得通,但我不确定这是最好的方法,而且我不确定如何确保我不会以“John”对“Baz”有两个费率而告终。

我不认为我需要代码,而是希望有人说“哦,那是一种……关系”,这样我就可以掌握我在谷歌上搜索的内容。

最佳答案

它具有并属于许多具有丰富的连接表。

class Author
has_many :publications, :through => :rates
end

class Publication
has_many :authors, :through => :rates
end

class Rate #rich join table
belongs_to :author
belongs_to :publication
end

然后您可以像这样简化您的发现:

@author.rates.find_by_site_id(123)

此外,您还可以直接访问连接表

@author.publications
@publication.authors

关于ruby - 我不明白如何表达三个单独表之间的关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/522815/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com