Ruby on rails 3 Rails模型关联:两个模型之间的多个关联

Ruby on rails 3 Rails模型关联:两个模型之间的多个关联,ruby-on-rails-3,model-associations,rails-models,Ruby On Rails 3,Model Associations,Rails Models,我已经搜索并找到了一些与此相关的东西,但似乎无法从帖子中找到有效的解决方案 我的情况:我有用户,我有拼车;用户可以是拼车的驾驶员(拼车只能有一名驾驶员),也可以是拼车中的骑手(拼车可以有多名骑手) 以下是我的最新尝试: class Carpool < ActiveRecord::Base attr_accessible :rider_id belongs_to :driver, class_name: "User", foreign_key: "driver_id" has

我已经搜索并找到了一些与此相关的东西,但似乎无法从帖子中找到有效的解决方案

我的情况:我有用户,我有拼车;用户可以是拼车的驾驶员(拼车只能有一名驾驶员),也可以是拼车中的骑手(拼车可以有多名骑手)

以下是我的最新尝试:

class Carpool < ActiveRecord::Base
  attr_accessible :rider_id

  belongs_to :driver, class_name: "User", foreign_key: "driver_id"

  has_many :riders, class_name: "User"

  def add_rider(user)
    self.riders << user 
  end
end
我想我可能把外键弄错了。。。事实上,司机/拼车者[司机有很多:拼车者]和车手/拼车者[拼车者有很多:车手]之间的关系在“背景语”中起作用,这一事实也让我的头脑迷糊

我做错了什么最好的方法是什么

非常感谢您的帮助,谢谢

根据Conva在rubyonrails上的介绍,这种方法可能适合您(感谢bricker提供的要点):

class拼车
属于:驾驶员,类别名称:“用户”#每个拼车的单个驾驶员
共乘汽车的人很多吗
有很多:车手,通过::拼车车手
#模式:
#司机证
结束
class拼车者
属于:拼车
属于:骑手,类别名称:“用户”
#模式:
#拼车
#车手身份证
结束
类用户
有很多:拼车驾驶,课程名称:“拼车”,外键:“驾驶员id”
共乘汽车的人很多吗
共乘汽车的人很多吗
结束
class User < ActiveRecord::Base
  attr_accessible :driver_id

  has_many :carpools

  belongs_to :carpool, class_name: "Carpool", foreign_key: "rider_id"

end
create_table "users", :force => true do |t|
  t.string   "email",                  :default => "", :null => false
  t.string   "name"
  t.integer  "driver_id"
end

create_table "carpools", :force => true do |t|
  t.datetime "created_at", :null => false
  t.datetime "updated_at", :null => false
  t.integer  "rider_id"
end