2013-02-13 119 views
0

我有一个用户表下面的模式:Ruby on Rails的数据建模

User -- id , name , age etc

和骑表下面的模式:

Ride -- id , from , to etc.

我也有一个预订表格:
Booking - id, User_id, Ride_id

有没有什么方法可以描述像from , to etc这样的骑行的细节,以及关于预订的用户的详细信息?

回答

2

假设你有如下关系:

class User < ActiveRecord::Base 
    has_many :bookings 
    has_many :rides, :through => :bookings 
end 

class Booking < ActiveRecord::Base 
    belongs_to :user 
    belongs_to :ride 
end 

class Ride < ActiveRecord::Base 
    has_many :bookings 
    has_many :users, :through => :bookings 
end 

你可以检索你想要的任何信息。

booking = Booking.find(1) 
booking.user.name 
=> #return user name 
booking.ride.from 
=> #return ride from 
etc 

此外,:through可以让你直接从ride,反之亦然访问user

user = User.find(1) 
user.rides 
=> #return all rides for that user