Ruby on rails 铁路协会规划
我仍在使用Rails,我有一个关于关联的问题 我正在建立一个健身网站,我想让用户跟踪他们的训练。我有点不确定协会应该怎么办。下面是我目前拥有的 锻炼由一组练习组成。用户将创建一个训练对象,将所有练习保存在一起,这样就不必每次都重复创建过程。除此之外,我不希望他们必须重新创建练习,将其添加到新的训练中。因此,锻炼和锻炼都属于用户 我的计划是这样的Ruby on rails 铁路协会规划,ruby-on-rails,activerecord,ruby-on-rails-4,associations,Ruby On Rails,Activerecord,Ruby On Rails 4,Associations,我仍在使用Rails,我有一个关于关联的问题 我正在建立一个健身网站,我想让用户跟踪他们的训练。我有点不确定协会应该怎么办。下面是我目前拥有的 锻炼由一组练习组成。用户将创建一个训练对象,将所有练习保存在一起,这样就不必每次都重复创建过程。除此之外,我不希望他们必须重新创建练习,将其添加到新的训练中。因此,锻炼和锻炼都属于用户 我的计划是这样的 Workout belongs_to :user has_many :exercises, :through => :routines Exer
Workout
belongs_to :user
has_many :exercises, :through => :routines
Exercise
belongs_to :user
has_many :workouts, :through => :routines
Routines
belongs_to :workout
belongs_to :exercise
User
has_many :workouts
has_many :exercises
//the rest of the user associations
我认为这是正确的,但拥有属于用户的锻炼和锻炼对我来说似乎有些多余。这是最好的设置还是有其他方法来关联这些东西?非常感谢您的帮助。我知道没有必要在那里设置
例程。您需要调整您的关联。
像这样怎么样
Workout
belongs_to :user
belongs_to :exercise
User
has_many :exercises
has_many :workouts :through => exercises
Exercise
has_many :workouts
belongs_to :user
就我个人而言,这似乎更符合逻辑:
class User
has_many :workouts
class Workout
belongs_to :user
has_and_belongs_to_many :exercises
class Exercise
has_and_belongs_to_many :workouts
在我看来,练习只属于一项或多项训练,与使用者关系不大。因此,我将省略用户和练习之间的关联
由于训练可以共享类似的训练,因此它们之间存在多对多关系。通常,在这些情况下,我会选择has\u many,through关系,但由于您没有提到连接模型has\u和\u-belies\u-to\u的可能附加属性,所以使用连接表的多个属性就足够了
编辑:你想得越多,关联可能就越复杂。例如,一项训练实际上可以属于多个用户。我想最好去画板上画每个模型的关联和属性。查看这篇文章:我刚找到它!它可能会帮助你!我唯一关心的是,我希望用户能够将他们已经创建的练习添加到其他例程中,而无需重新创建。这允许我这么做吗?老实说,定义有点混乱。日常活动和锻炼本质上不一样吗?锻炼包括一系列的锻炼,对吗?无论如何,这些练习可以用于多种例行程序。使用嵌套资源,您可以在训练中添加或删除练习。还有一点需要注意的是,一个用户可以有许多训练,但一个训练也可以属于许多用户。我认为多个用户可能希望在他们的训练中使用相同的训练,但不一定是相同的训练。每个用户都会创建自己的训练,因此理论上一个训练可以属于许多用户,但实际上不会这样使用。例行程序部分是作为我在锻炼和锻炼之间的桥梁加入的,因为它将是多对多的关系。这些例行程序将成为该协会的最终目标。