我已经搜索并发现了一些与此相关的内容,但似乎无法从帖子中找到可行的解决方案。
我的情况:我有用户,我有拼车;用户可能是拼车的司机(拼车可能只有一名司机)或用户可能是拼车中的乘客(拼车可能有多个乘客)
这是我最近的尝试:
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
和用户
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
我想我可能在外键上做错了......事实上,司机/拼车 [driver has_many :carpools] 和骑手/拼车 [carpool has_many :riders] 之间的关系是“后备词”,这一事实也让我的大脑蒙上了一层阴影。
我做错了什么最好的方法是什么?
非常感谢任何帮助,谢谢!