ruby-on-rails - Rails 3 - belongs_to user AND has_many users

标签 ruby-on-rails database ruby-on-rails-3 activerecord

我正在尝试弄清楚如何执行以下操作:

一场音乐会属于一个用户(创作者),有_很多客人和有_很多组织者。

下面的方法好吗?

音乐会:

 class Concert < ActiveRecord::Base
  belongs_to :user
  has_many :guests, :class_name => 'User'
  has_many :organisers, :class_name => 'User'
 end

用户:

 class User < ActiveRecord::Base
  has_many :concerts
 end

提前致谢

最佳答案

添加两个新模型来保存 has_many 关系:

 class Concert < ActiveRecord::Base
  belongs_to :user
  has_many   :concert_guests
  has_many   :concert_organizers

  has_many   :guests, :through => :concert_guests, :source => :user
  has_many   :organizers, :through => :concert_organizers, :source => :user
 end

 class User < ActiveRecord::Base
  has_many :concerts
 end

 # table with user_id and concert_id columns   
 class ConcertGuest
   belongs_to :user
   belongs_to :concert
 end

 # table with user_id and concert_id columns   
 class ConcertOrganizer
   belongs_to :user
   belongs_to :concert
 end

关于ruby-on-rails - Rails 3 - belongs_to user AND has_many users,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6259015/

相关文章:

ruby-on-rails - Rails 辅助方法 : Nested hash to nested HTML list

mysql - Gem 允许使用分片 mysql 数据库访问数据,同时保持 Activerecord 的使用

ruby-on-rails - 带字段的 Rails ElasticSearch 模型

mysql - 清除未使用表的 MySQL 5.0 数据库

ruby-on-rails - 设计:删除确认

ruby-on-rails - 渲染 :json with extra data

php - 如何在不带括号的 Zend_Db_Select 语句中使用 "HAVING"子句?

mysql - 通过不使用/查询同一个表两次来优化 mysql 查询

ruby-on-rails - Rails - 如何选择表格中的最后一个日期?

ruby-on-rails - 在寻找不存在的 key 时,还有其他人遇到 aws-s3 超时问题吗? S3 对象存在?和 S3 Object.request( :head, ..)