我有一个用户表下面的模式:Ruby on Rails的数据建模
User -- id , name , age etc
和骑表下面的模式:
Ride -- id , from , to etc.
我也有一个预订表格:
Booking - id, User_id, Ride_id
有没有什么方法可以描述像from , to etc
这样的骑行的细节,以及关于预订的用户的详细信息?
我有一个用户表下面的模式:Ruby on Rails的数据建模
User -- id , name , age etc
和骑表下面的模式:
Ride -- id , from , to etc.
我也有一个预订表格:
Booking - id, User_id, Ride_id
有没有什么方法可以描述像from , to etc
这样的骑行的细节,以及关于预订的用户的详细信息?
假设你有如下关系:
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
创建模型用户,骑乘和预订。那么你可以使用booking.ride.from
,user.bookings.last.ride.to
。这一切都在这里解释http://guides.rubyonrails.org/association_basics.html。