次のスキーマを持つ User テーブルがあります。
User -- id , name , age etc
および次のスキーマを持つ Ride テーブル:
Ride -- id , from , to etc.
次のスキーマを持つ Bookings テーブルもあります。
Booking - id, User_id, Ride_id
乗り物の詳細from , to etc
や、予約したユーザーの詳細を説明する方法はありますか?
次のスキーマを持つ User テーブルがあります。
User -- id , name , age etc
および次のスキーマを持つ Ride テーブル:
Ride -- id , from , to etc.
次のスキーマを持つ Bookings テーブルもあります。
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
アクセスすることも、その逆も可能です。user
ride
user = User.find(1)
user.rides
=> #return all rides for that user
モデル User、Ride、および Booking を作成します。booking.ride.from
次に、 、を使用できますuser.bookings.last.ride.to
。これはすべてここで説明されていますhttp://guides.rubyonrails.org/association_basics.html。