我在一个活动网站上工作,用户在其活动清单中有可以在其个人资料中列出的项目。为此,我正在使用:
has_many :items
在我的user.rb中。
用户将可以参加任何数量的活动。对于每个事件,他们将具有唯一的项目列表,即要带入事件的项目。我正在尝试找出关联以便使这项工作有效。
在item_list.rb中:
belongs_to :event
belongs_to :user
has_many :items
在item.rb中:
belongs_to :user
belongs_to :item_list
在event.rb
has_many :item_lists
但是让我感到困惑的是确保每个列表对于每个事件和用户都是唯一的。另外,我对item_list
的迁移是否包括一系列项目?
任何见识都会受到赞赏。
答案 0 :(得分:0)
但是令我困惑的是确保每个列表对于每个列表都是唯一的 事件和用户。
如果我没记错,您正在寻找带有scope
选项的validates_uniqueness_of
。
在您的item_list.rb
中,添加
validates_uniqueness_of :event_id, scope: :user_id
这将确保您拥有一个item_list
和唯一的event_id
和user_id
。换句话说,每个item_list
和每个event
和user
都是唯一的。
当我为item_list生成数据库迁移时,我需要 包含一列数组,即保存item_ids
否,如何设置关联,Rails希望您在item_list_id
表中有items
。因此,如果您想为items
提取item_list
,则可以进行@item_list.items