我一直在将has and belongs to many
样式关联应用到我一直在从事的项目中,但是因为我想在我的连接模型中捕获额外的信息,所以我通过更精细的belongs_to
/has_many
方法而不是has_and_belongs_to_many
. 在最初偶然发现这一点之后,我了解到我在我的模型 User 中需要这两个定义(在 Show 模型对应项中也是如此):
has_many :saved_shows
has_many :shows, :through :saved_shows
一切正常,我的问题更多是关于 Rails 语法的设计,因为我想确保我不会错过这里的大局:为什么第一个是必要的?如果我们要确定用户可以通过具有非标准名称的中间人访问节目列表saved_shows
,为什么还要创建has_many :saved_shows
?
我猜我不是第一个遇到这个问题的人,所以我很好奇为什么 Rails 需要这个看似多余的定义。它只是一个选择不当的语法还是背后有一些更深层次的设计?