繁体   English   中英

Rails中的关联模型混乱

[英]Association Model Confusion in rails

我有3个型号

User
Event
Group

他们都有一个位置。 如何将以上3与位置相关联。 我应该创建其他位置表吗? 最佳关联模式应该是什么?

由于每个位置可以有多个事件,组或用户,因此我想确保位置的唯一性。

另外,我想要一个位置用于多个模型,例如-如果将有5个用户广告来自纽约的5个事件,我只希望在位置表中创建1个纽约

如果您有一组预定义的位置(例如New York EG),则可以将它们放入自己的模型中:

#app/models/location.rb
class Location < ActiveRecord::Base
   has_many :users
   has_many :events
   has_many :groups

   validates :x, uniqueness: true
end

#app/models/user.rb
class User < ActiveRecord::Base
   belongs_to :location
end

#app/models/event.rb
class Event < ActiveRecord::Base
   belongs_to :location
end

#app/models/group.rb
class Group < ActiveRecord::Base
   belongs_to :location
end

上面将允许您调用以下内容:

@location = Location.create({name: "New York"})

@event = Event.create({location: @location})
@group = Group.create({location: @location})
@user = User.create({location: @location})

-

我也想要一个位置用于多个模型

这是ActiveRecord关联的标准做法:

在此处输入图片说明

您将能够在“ Location模型中添加uniquness验证 ,以确保每条记录都独立保存。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM